Sto solo cercando di farti usare la logica...
Un messaggio che dice "Maximum execution time of 120 seconds exceeded" significa che il tuo non ha completato l'esecuzione entro il tempo limite a sua disposizione (120 secondi nel tuo caso).
Potresti poter cambiare il limite utilizzando una funzione come http://www.php.net/set_time_limit .
In alternativa potresti ristrutturare il codice in modo da inviare le email in gruppi di 100 (ad esempio) oppure potresti appoggiarti a cron per schedulare l'invio.