There is a rough implementation available based on gobject and gtktreeview implementing a custom gobject structure.
https://github.com/chergert/custom-gtk-widgets/tree/master/eggsqlitestore
IDEAS: ===========================
- use eggsqlitestore, but do massive improvements
- only load on-demand 1000 lines into the treeview
- use signals for resize/scroll to calculate the lines to load/display
- on a scroll, disable the widget and load the lines when the scroll is finished
- discard or cache all other lines up to a limit of X MB cache
- use a simplistic view, just consisting of headers, listen for change in prefs to reload the appropriate lines if the layout has changed
- on a row expand cache the sub-thread lines and append them to that row
- drop pantreestore in favor of the new model or not?
- pantreestore could still be useful, but the information about the other articles isn't readily available
- pantreestore/groupheaders need those informations sometimes, so a workaround is needed(!)