Your only other option is to not use grid container and just use plain control nodes to replicate it but then your rows can be set to shrink_end so the row elements behave the way you wanted. But you do lose the convenience of a grid container. And it takes a lot more ‘fiddling’ in code to limit elements in the rows and create a new row when one fills up etc.
I have in the past added blank elements. So you have four columns. If you know how many elements there are left to add (assuming you are instantiating them in code) and they are less than four, you can add blank elements at the start of the row. Again this is something you would have to do in code and is a bit of a pain TBH.
Sorry if that was not the news you were hoping to hear!