Yes, brushless is the best type of motor for this. A brushed DC motor could also work.
The speed controller is likely to be too slow and you don't really want speed control but position control. This is usually done with discrete transistors driven directly from the Arduino but there are probably 3-phase H-bridges available to do most of this in one package for you.
You need to understand servo loops to do this - a PID controller is the minimum requirement
for balancing. The most important thing mechanically is low backlash, backlash will prevent
the PID loop working fast enough to keep control. The motor also has to be powerful enough
and its gearing appropriate to the load.