Se me ocurre que podrías tirar una select como ésta :
Código:
SELECT DISTINCT p.nombre, a.*
FROM profesores p ,
alumnos a
WHERE p.ID_profe = a.id_profe
ORDER BY p.nombre ASC
Entonces puedes hacer rotura de secuencia por nombre de profesor, o si quieres cambia el ORDER BY por p.id_profe y así sacas todos los datos de los alumnos por profesor rompiendo por nombre .
Tienes que controlar la paginación por el nombre o el ID del profesor. Cuando cambie haces un salto de página. Desde donde paginas ?
Salu2