Hola,
Tienes razon, en la primera iteracion del for ejecuta todos los ciclos del while y deja el puntero al final.
Para posicionar el puntero en el primer registro, puedes usar la funcion mysql_data_seek() (
www.php.net/mysql_data_seek).
Suerte.
PD: TAmbien podrias cambiar el algoritmo, haciendo que la consulta este ordenada e ir mostrando los resultados con un solo while.