Heres an idea... kick off a background thread in the menuitem action that does the recusive search.
When you append, call TableView.insert_rows(rows). the item selected callback would need to set a flag to stop the search.
This would allow results to populate in realtime.
I'll not stop the scan background thread even if we select a file to watch because if we come back to watch another file, the list has still increased and should be normally ended. But I'll stop the thread if we close the TableView.