You didn't mention a budget. But with 6-9 motors, a stepper solution would be fairly expensive. Our Motor Shield will only control 2 steppers. Your best bet would probably be to use some of the serial stepper controller modules from Pololu.
Since you do not need direction control, DC motor control could be very simple. One of these with a kickback protection diode on a PWM pin for each motor is all you would need: http://www.adafruit.com/products/355
An Arduino UNO has 6 PWM pins. The Mega has 12. Another option would be our 16 channel PWM breakout. http://www.adafruit.com/products/815
The problem then is how to handle real-time position feedback from 6-9 motors. With that many high-resolution encoders going at once, you run the risk of missing pulses.
I only need to go in one direction slowly at about 8-10rpm and once in say 10 rev have the motors be synced.
What kind of position resolution do you need?
Do the motors always need to sync in the same position?
Would it be sufficient to have a single "home" sensor on each motor?