dopo

asort($list);

tu hai un array con dentro tutti i file che sono stati letti... visto che lo vuoi impaginare se ho ben capito, ti basta

1) calcolarti il numero di pagine che puoi ricavare dall'array

2) a seconda della pagina in cui ti trovi, ti calcoli l'indice di partenza e l'indice di fine dell'array

3) invece di un foreach($list as $chiave => $valore) fai un for($i =INDICE_DI_PARTENZA; $i<= INDICE_DI_FINE; $i++) stampando poi $list[$i]