Aber ich hab im Datenblatt gesehen das der ATMega32 3 Timer hat. Kann man dann nur 3 Interrups festlegen?
Wenn du nur 3 Timer hast, können wohl auch nur 3 Timer überlaufen und dabei einen Interrupt erzeugen.

Was wenn ich jetzt für 10 verschiedene sachen Zeiten messen will?
Zehn Zeiten kann man auch mit einer einzelnen Uhr stoppen, man muss halt nur entsprechend oft drauf gucken.

Ein Timer zählt bei jedem Controllertakt eins hoch (oder runter, da bin ich mir nicht sicher).
Den "Zählerstand" des Timers kannst du jederzeit abfragen und weisst dann wieviel Takte seit dem Start des Timers vergangen sind. Den Controllertakt kennst du und kannst daher ausrechnen wieviel Zeit vergangen ist.
Das klappt allerdings nur, bis der Timer überläuft und wieder von vorne zu zählen anfängt. Beim Überlauf des Timers erzeugt er einen Interrupt. Über eine entsprechende Interruptroutine kannst du eine Zählervariable hochlaufen lassen. Die sagt dir dann wie oft der Timer "rum" ist.

Über den Prescaler und einen Vorgabewert für den Timer kannst du dir die ganze Geschichte eventuell noch ein bischen handlicher machen, indem du dir den Timer z.B. so konfigurierst, dass er jede mS überläuft und du dann in der Interruptroutine die mS mitzählst.

In Bascom gibt es auch den Befehl "Time". Damit kannst du glaube ich fast genauso arbeiten wie mit einer normalen Uhr, allerdings auch nur auf die Sekunde genau.