I am a fan of keeping logic out of the template as much as possible. I would suggest creating a helper function that returns the data that you care about to the template. For instance:
getItemsForDisplay():String[] {
return [].concat.apply([],this.groups.map(group => group.items));
};
<tr *ngFor="let item of getItemsForDisplay()"><td>{{item}}</td></tr>
This will let you keep your presentation free of special logic. This also lets you use your datasource "directly".