Supongo que lo que buscas es una especie de paginación. El tema de las paginaciones suele surgir con frecuencia por lo que te sugiero que busques un poco al respecto si quieres profundizar.
Por ahora te muestro un ejemplo de paginación basado en el código que has publicado, que espero que sea fácil de seguir y estudiar :):
Código PHP:
<?php
// Extensiones de imágenes válidas
$extensiones = array ('.jpg', '.png', '.gif');
// Número de imágenes por página
$imgpp = 10;
// Directorio de donde leer las imágenes
$dir = './';
if (isset ($_GET['pagina']))
$pag = (int) $_GET['pagina'];
else
$pag = 1;
$directorio = opendir($dir);
$num = 0;
$i = 0;
$entradas = array ();
while ($archivo = readdir($directorio)) {
if ($archivo == '.' || $archivo == '..')
echo ' ';
elseif (in_array (substr ($archivo, -4), $extensiones)) {
$num++;
$i++;
$entradas[$archivo] = filemtime($dir."/".$archivo);
}
}
arsort ($entradas);
closedir ($directorio);
// Extraer solo las imágenes que corresponden a la página actual
$total = count ($entradas);
$comienzo = ($pag - 1) * $imgpp;
$entradas = array_slice ($entradas, $comienzo, $imgpp);
// Imprimir ese grupo de imágenes extraído en el paso anterior
foreach ($entradas as $archivo => $timestamp) {
echo "<img src=\"$archivo\">";
}
// Enlaces de paginación
$total_paginas = ceil ($total / $imgpp);
echo '<p>Páginas: ';
for ($i = 1; $i <= $total_paginas; $i++) {
echo '<a href="' . $_SERVER['PHP_SELF'] . "?pagina=$i\">$i</a> ";
}
echo '</p>';
?>
En resumen, tu código ya hacía la mayor parte del trabajo. El código de la paginación consiste simplemente en extraer aquellos resultados que nos interesan en la página actual y mostrar solo ésos. En el anterior ejemplo se hace esto usando array_slice(), pero hay un sinfín de alternativas más.
Si indagas un poco más, probablemente encuentres muchas otras opciones interesantes que puedes aplicar a problemas parecidos.