A ver, no se si te entendí bien, pero ¿No bastaría con ordenar los registros ascendentemente por dicho campo que contiene la fecha?
Código Delphi
[-]
procedure TdmDatos.ConsultaUltimos20;
begin
with qyCapturas do
begin
close;
sql.Clear ;
sql.Text := 'select * from Datos order by horafecha asc rows 20';
open;
end;
end;