Virtualization with nested iterating data sources

In our gantt chart we have a nested list of groups and machines, with varying number of machines per group. We want to combine these two object types into one iterating list so that we can utilize virtualization. It should look like the picture. Any tips?

I believe the only way to solve this is to create a separate (runtime) data source where you combine both groups and machines (sorted by group), and thereby iterate that data source. You may add a boolean property to define if it’s a group, and have custom styling based on that boolean.