Scusami tu usi glob() solo per contare quante immagini ci sono, ma glob() ti restituisce un array contenente il percorso di tutti i file, quindi perche' buttarlo via e usare un ciclo con readdir()? Usa direttamente l'array restituito da glob().

Per quanto riguarda la paginazione il concetto e' identico a quello di qualunque guida: devi passare un parametro da una pagina all'altra che indichi quale porzione visualizzare, a seconda di questo valore mostri le immagini corrette.

Esempio: chiamiamo $pagina questo valore, se $pagina vale 0 allora mostri le immagini contenute nell'array restituito da glob che abbiano indice da 0 a 14, se $pagina vale 1 mostri quelle da 15 a 29 e cosi' via.

Il valore puoi passarlo da una pagina all'altra ad esempio tramite query string per recuperarlo dall'array $_GET.