Ciò che vuoi ottenere si chiama paginazione, ovvero la suddivisione di un insieme di entità in sottoinsiemi discreti, limitati e distinti.
Per la suddivisione in pagine hai bisogno di passare allo script l'informazione sulla pagina corrente, ad esempio tramite $_GET.
Per l'ordinamento dei risultati da recuperare hai bisogno, se non l'hai già fatto, di arricchire la tabella con l'informazione sulla data di pubblicazione. Un campo di tipo TIMESTAMP andrà bene. Potrai quindi usare ORDER BY nome_campo DESC nell'interrogazione.
Per la paginazione vera e propria dovrai prima calcolare l'offset come (pagina - 1) * dimensione_pagina, e quindi usare l'informazione per effettuare l'interrogazione: LIMIT 20 OFFSET offset_calcolato.
Riassumendo, il codice viene pressapoco così (assumendo che tu passi l'informazione della pagina tramite $_GET['pagina'] e il campo di tipo timestamp si chiami timestamp_creazione):
Codice PHP:
$dimensione = 20;
$pagina = isset($_GET['pagina']) ? $_GET['pagina'] : 1;
$offset = ($pagina - 1) * $dimensione;
$query = "SELECT * FROM ... ORDER BY timestamp_creazione DESC LIMIT $dimensione OFFSET $offset";