have you tried using the methods:
[tableView beginUpdates];
//perform changes to data
[self.tableView insertRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationRight];
[tableView endUpdates];
With each section being folders. So initially a bunch of sections with 0 cells, and the once you tap a section, you insert cells for that section, and reference that through the paths array.