1º) .. No depende de mail() el envio efectivo del mail sino de tu "MTA" que uses (el servidor SMTP o el que use mail()). Te recuerdo que PHP físicamente no envia los e-mails vía mail() sino que es tu servidor SMTP o el "MTA" (Mail Transfer Agent) que uses el que hace dicho proceso final, incluido tiempos de "relay" (reintentos) y demás para intentar "entregar el e-mail" a su destinatario.
2º) PHP dá un tiempo máximo de ejecución para un script (el que use tu bucle y mail()) .. eso lo determina y puedes ajustar con la función: set_time_limit() (por defecto son 30 segundos).
Si sobrepasas ese tiempo y no lo autmentas .. PHP cortará la ejecución del script.
Hay mejores formas para enviar e-mails masivos desde PHP .. por ejemplo usando envio directo por SMTP par lo cual te puedes ayudar de la classe:
PHP Mailer
http://phpmailer.sourceforge.net
que te permite entre otras cosas usar vários servidores SMTP a la vez para "balancear" la carga del envio de N e-mails repariendolos entre los que indiques.
así aceleras notablemente el envio del e-mail final.
Si aun así quieres hacer una "pausa" en PHP puedes usar la función sleep() .. pero antes tendrás que dar más tiempo de ejecución a tu script: set_time_limit() y para el cálculo de cada cuantos e-mails hará el sleep() .. usa un contador bajo tu bucle de envio de e-mails y aplica (matemáticas) el módulo de una división.
Un saludo,