You should keep the number of actors preferably below a few hundred. If you want to display thousands of small spheres then you can use a glyph filter (such as vtkGlyph3D) and render it using a single actor; or for even better performance, use a glyph mapper.
I’m not sure if there is a widget that you can use for individual picking and moving of individual spheres. In 3D Slicer, we had to implement our own widget for this, and the performance is good with a few 10k points. If you need to interact with many point glyphs from a C++ or Python application with Qt GUI then you may consider using 3D Slicer as a platform, especially if you work in the medical imaging domain.
You may find this and related topics relevant: