You can control 12 servo motors with digital pins without motor controller.
I don't think its practical for an Arduino sketch to drive that many servos in software if it needs to spend much time doing other tasks as well. The problem is that each servo needs to be driven for 1 to 2 milliseconds and all the servos should be updated every 20 milliseconds. That doesn't leave much time to do anything else if lots of servos need servicing
This thread has a library that drives up to 8 servos using a Arduino hardware so that the sketch does not need to spend time pulsing the servos : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1230479947