I managed to do this by turning off the form properties "Snap to columns".
I figured that putting this off, the datacards are not being reindexed when you move another DataCard in the form.
Else, everytime you move a DataCard, all other datacard below it get a new Y position.
So I leave a significant number inbetween my datacards rows.
And then you can put a "If" in the Y properties of the datacard to move depending on conditions.
For example, lets say We want Q3 to be on top when Q1 is true.
Q1_DataCard.Y = 100
Q2_DataCard.Y = 200
Q3_DataCard.Y = If(Q1_Value.Value,50,300)
Q4_DataCard.Y = 400
You probably already used a workaround since 2020 but for others who might look for same use.