fai troppe domande tutte insieme.
1) Lo script per generare le miniature che hai linkato serve per generarle "al volo". Se si tratta di poche immagini è ok ma se sono molte credo che si appesantisce molto l'esecuzione dello script (perlomeno penso). E' molto meglio generare le miniature in fase di uplaod dell'img.
2) per vedere le immagini presenti in una cartella devi utilizzare la funzione glob(). Si possono usare anche altre funzione (opendir-scandir... etc etc) ma sono più "vecchie".
3) Per ordinare le immagini in base alla data devi anzitutto conoscere la data di un file. Per verificare la data (anche se nn del tutto affidabile) devi utilizzare filemtime().
4) una volta ottenuta la data per ciascun file devi costruirti un array multidimensionale con il timestamp del file ed ordinare l'array in base a tale elemento.