Hola,
 
Primero tienes que hacer que PHP reciba los distintos ficheros y los distinga. Como ya te han dicho, podrias hacerlo poniendo como nombre de los campos del formulario nombre_img$num (que te generaria los campos nombre_img1, nombre_img2, ...). Aunque yo te recomiendo que uses como nombre nombre_img[], sobre todo porque asi la pagina destino no necesita saber el numero que se especifico. Te quedaria asi: 
 Código PHP:
    $num = 1;
 
while ($num <= $imgq ) {
 
echo "imagen #".$num." <input type=\"file\" name=\"nombre_img[]\" size=\"30\"><br>";
 
$num++;
 
} 
    
  Lo segundo es que debes pasarle a la funcion todas las variables que necesita. Me explico. En tu codigo le pasas $nombre_img, quizas porque pensabas que esa variable representa a todas las variables de la imagen. Pero lo que debes pasarle son todas las variables que usas en el trozo de codigo. La definicion de la funcion seria: 
 Código PHP:
    function upload($imagen, $imagen_name, $imagen_size, $imagen_type); 
    
  Las que he puesto son las variables del upload de fichero. No conozco tu codigo, pero quizas necesitas pasar otras variables. 
Y por ultimo, queda llamar a esa funcion con los valores de los distintos ficheros a subir. Lo podrias hacer asi: 
 Código PHP:
    for ($i=0; $i<count($nombre_img);$i++)
{
upload($nombre_img[$i],$nombre_img_name[$i],$nombre_img_size[$i],$nombre_img_type[$i]);
} 
    
  Y con esto creo que funcionaria.  
Suerte.