... ¿y el while para qué es?, ¿para qué recuperar y procesas la información? ... ¿qué no solo te interesa EL NÚMERO?. Incluso, desde la consulta estás mal, deberías utilizar un COUNT() y ya.
... solo porque mencioné el COUNT()
Código PHP:
$sql= "SELECT COUNT(*) AS cantidad from imagenes where pto_id='$id'"
$resultados = mysql_query($sql) or die (mysql_error());
$dato = mysql_fetch_assoc($resultados);
$imagenesquedan = 4 - $dato['cantidad'];
if($imagenesquedan >0 ) { // seguramente querrás hacer esto
echo "Puedes añadir otras <b>$imagenesquedan</b> imágenes : <br><br>";
echo "<form name=form onReset='return Limpiar();' action='subir.php?id=$id' ENCTYPE=multipart/form-data METHOD=POST>";
for($i = $imagenesquedan; $i > 0; $i--) {
echo "<input type='file' name='name='archivo[]' size='15' class='caja'><br>";
}
} // fin del if .. tú sabrás
Espero sirva. Suerte