Ja, Du kannst LIMIT 0,18 nehmen (z.B. bei Firebird und mySQL). Dmait liest Du immer die nächsten 18 Datensätze beginnend beim 1. (also Index 0) aus. Danach einfach die 0 durch Vielfache von 18 ersetzen, dann sollte es klappen.
Alternativ haben die meisten Queries die Methode MoveBy oder Move, der Du einen Integer übergeben kannst, um wieviel Datensätze weitergescrollt werden soll. Du solltest aber vorher schauen, dass die Datenmenge trotzdem nicht zu groß wird, denn nicht alle Komponenten fetchen die Datensätze erst, wenn sie wirklich gebraucht werden. Aber auch wenn sie das tun, ist das bei viele Datensätzen (dann schon im Bereich von mehreren 10 bis 100-Tausend) eine ordentliche Arbeit für eine DB.