Stimmt, Sensitive ist für Aktualisierungen. Allerdings macht Scrollable ohne Sensitive wegen der Performance keinen Sinn, da sonst immer erst eine Kopie erstellt werden muss.

Was die Paginierung angeht, solltest du dich nicht um den Filter (Where) kümmern sondern nur um den Order By. Der Filter ist ja Users Wunsch und schränkt die Daten ein.
Einzig die dynamische Sortierung ist dein Problem bei der Subfileanzeige.

Neben Limit/Offset gibts noch eine Alternative in der Kombination mit D*B's Ansatz (wird auch öfters von Birgitta vorgeschlagen:

select * from (
select .....
,count(*) over () as Anzahl
,row_number() over (order by ....) Zeile
where UserFilter
) x
where Zeile between ? and ?
order by Zeile
fetch first n records

Die sog. Olap-Funktionen sind explizit für schnelle Ausführung entwickelt (einen Index über die Sortfelder sollte man trotzdem haben).
Du nummerierst die Zeilen entsprechend der gewünschten Sortierung.
Anschließend filterst du die gewünschten Zeile über deine Seitenlänge.
Der Sort nach Zeilennummer bringt dir die gewünschte Reihenfolge, da die Sortierung ja bereits erfolgt ist.

Vorteil: Du kannst auch nach Spalten sortieren, die nicht im Ergebnis leigen müssen.
Da die IBM i durchaus mehrere 10.000 Zeilen/Sekunde lesen kann, sollte die Performance kein Problem sein, und wer hat schon Lust, mehrere 100 Seiten durchzublättern.

Das Verfahren ist i.Ü. auch Sensitive, da ja ständig neu abgefragt wird.