Arduino actually has 14 digital pins that can be used as outputs, plus 6 analog pins that can also be used as digital outputs. So, pin wise, you can connect 20 servos to an Arduino. But the Servo library can handle only 12 servos without problems, but you might want to try out the SoftwareServo library that may be able to handle more. I never tried using more than 12, but I'm working on a project where I'll use 12 servos plus another one to pan a sensor to find a clear path for the robot to go. I will generate pulses for the last servo by turning the pin High for the required microseconds then turn it Low and run the code during the rest of the 20 milliseconds period, then loop. I hope it'll work fine.
BTW, I made a board especially for this project: the uServotino robot controller