y porque no un timer??
Hacete un ciclo que simplemente espere a que haya transcurrido el tiempo deseado... (que es lo que hace sleep). Si no queres que la aplicación "se duerma" durante ese tiempo, llamá dentro del ciclo a Application.ProcessMessages; (eso si, eso tiene sus implicaciones, ya que la aplicación puede ser cerrada, si inicias el proceso con un botón, el usuario puede iniciarlo una vez, quizas estropeandolo todo, en fin, detalles que tendrás que cuidar para que funcione decentemente)
Hasta luego.