I can't think of an easy and clean way to visualize this kind of structure in a default list. So if you want to be able to display the structure from your diagram dynamically you'll have much work to calculate the positions correctly in a clear way.
So I would suggest you to use easy Craft methods. You could create an entries field to relate your children with all the upper level parents, in your case you would have
Parent 1 - no relation
Parent 2 - no relation
Child - related to [Parent 1, Parent 2]
Grand Child - related To [ Child ]
Sub Parent 1 - related to [Parent 1, Parent 2]
Sub Parent 2 - related to [Parent 1, Parent 2]
Grand Child 1 - related To [Sub Parent 1, Sub Parent 2]
Grand Child 2 - related To [Sub Parent 1, Sub Parent 2]
Grand Child 3 - related To [Sub Parent 1, Sub Parent 2]
So you can get each parent of an entry with
and you can iterate through the tree. But this will only work well when don't mix trees.. So when you have a Parent 3 and 4 with another tree like in the diagram and one of those entries can be the parent of one of the grand children in the first tree you could have trouble (performance wise) to iterate to the beginning. You can collect
all parents with no problem but if you have 5+ levels you'll need many queries and it could take a lot of time in Craft2 with default
ElementCriteriaModels. But that's always the case in those NxN tree connections
I don't see any issues as long as your trees are separated from each other and as long as you use custom code to fetch the entries.