Hola,
¿Es tu propio servidor? ¿O es un hosting de pago o gratuito? Podira ser que tuvieras deshabilitada la funcion set_time_limit(). O tambien podria ser que ese error de timeout no sea de PHP sino del servidor web. Si no mandas cosas al navegador, el navegador puede pensar que el servidor web se ha quedado colgado. Si haces el envio de emails dentro de un bucle, podrias hacer un:
Código PHP:
echo 'Enviado<br>';
flush;
dentro del bucle, para mandar algo al navegador.
Saludos.