Es kommt auf zwei Sachen an: Die Auflösung, mit der die Servos angesteuert werden, und die Geschicklichkeit des Programmierers. Man kann deutlich mehr Servos mit einem ATmega ansteuern, als hier allgemein behauptet.

Einmal ein Beispiel:
16MHz, Auflösung von 200 Einstellungen pro Servo. Software-PWM: Servopin wird auf High gestellt, und nach einer bestimmten Zeit (die von einem Timer, der im 20ms-Rhythmus durchläuft abgelesen wird) auf Low geschaltet.
20ms ist ein PWM-durchlauf, davon ist nur 1ms pro Servo tatsächlich auch relevant (also das, wo der Controller aufpassen muss).
1ms sind 16000Takte. wir brauchen eine auflösung von 200, d.h. jede 1/200ms könnte es sein, dass man das zuvor auf High gesetzte Signal auf Low schalten muss. Mal schnell gerechnet macht das 80Takte, um zu gucken ob der Servo den nötigen Wert erreicht hat. Wenn man schlau programmiert (am besten mit Assembler) kann man in diesen 80Takten nach mindestens 6Servos parallel schauen. Wenn mann dann noch so Programmiert, dass immer maximal nur3 oder 4 Servos zur gleichen Zeit auf Low gesetzt werden müssen, kann man mit einem vorher sortierten Array viel viel mehr Servos ansteuern.
Und das alles in nur 1ms (wenn man das auf High stellen eine ms zuvor, was nur einige wenige Takte dauert, vernachlässigt)

Das heißt also, man könnte in 3ms 18Servos perfekt ansteuern, bleiben noch 17ms Rechenzeit. Das ist mehr als die meißten brauchen.
Wenn man dann noch schaut, dass von den Servos, die in derselben ms auf Low gezogen werden, nicht mehr als 3 gleichzeitig auf Low gezogen werden müssen, übersteigt die Zahl der Servos locker die Zahl der Pins eines ATmega8.

Gruß, Yaro