Anche se ti ho detto che non è forse la soluzione migliore, ho voluto provare a fare qualcosa per la tua idea iniziale.
Ovvero quello di leggere nuovi dati all'occorrenza durante lo scroll della lista.
Sia andando avanti che andando indietro, alla faccia della IA.
Il codice è decisamente osceno ma siccome ci ho già investito diverso tempo te lo mando così solo per vedere che in qualche modo è fattibile.
NOTE:
- ho creato un DB al volo con circa 6 mesi prima e dopo la data odierna (ormai qualche giorno è passato).
- il DB contiene un appuntamento ogni giorno, cosa irreale ma così almeno avevo dati da usare.
- Dal LONG ottengo solo la data ma ovviamente si potrebbe ricavare anche l'ora. Che quì sarebbe uguale in ogni giorno.
- il formato del DB contiene la data dei vari giorni in valore LONG. Andrebbe sicuramente corretto per gestire il tempo in UTC e poterlo utilizzare in tutto il mondo.
E' chiaro che quindi serviranno modifiche perchè non avrai sempre un mese pieno da leggere come nel mio caso, a meno che non metti ogni giorno anche con "NESSUN APPUNTAMENTO".
Confido che ti divertirai insieme alle IA o ti metterai a pensare a come correggere.

Potresti dover correggere questa riga
B4X:
#AdditionalJar: sqlite-jdbc-3.53.2.1.jar
con la tua versione di quel JAR.
Io ho scaricato l'ultimo disponibile.
L'esempio è ricco di commenti quindi suppongo che riuscirai a capire la logica (per quanto contorta e totalmente migliorabile).
Basta, mi sono fuso a sufficienza.
Auguri e buon divertimento.