Así de golpe no sabría ponerte código, pero sería una función que trabajase con el tiempo actual y una diferencia en milisegundos.
Código PHP:
while ($tiempo_actual-$tiempo_inicio<100000){ //condición que no se cumpla nunca
if ($tiempo_actual-$tiempo_inicio<50000){ //tiempo que queremos que pase para realizar la acción predefinida, menor que el del "while"
$tiempo actual = //calculamos el tiempo actual con alguna función de sistema
}else{
$tiempo actual = //calculamos el tiempo actual con alguna función de sistema
$tiempo actual = //calculamos el tiempo actual con alguna función de sistema