El bucle for() lo debes emplear en el script que recibe tus arrays de tu formulario (que has generado con la lectura de sus registros con tu bucle while y tu mysql_fetch_array() como de contumbre .. sólo que has usado cod[] y demas variable[] para generar esos arrays con esos indices que necestitas).
Código PHP:
for ($indice=0; count($_POST['cod']); $indice++){
$cod=$_POST['cod'][$indice];
$otra=$_POST['otra'][$indice];
// Y tu query o uso que le des a cada elemento de esos arrays ..
}
Lo que no me queda claro es que si vas a crear un registro nuevo con (= alumno nuevo con sus notas y demás info) .. O bien quieres actualizar la información de X alumno (registro) .. en tal caso sería un UPDATE bajo un WHERE alumno=$alumno .. y no el INSERT ..
Un saludo,