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]