This is possible but may have a huge detrimental impact on performance if you don’t do it smartly.
You can’t achieve this with multi-column pages because you get your first behaviour.
The workaround is to use a table. You can define a gap between columns by setting padding distance in the Borders
tab of table properties. This works even when you have no borders.
Basically you have a 2-column table allowed to split across pages.
To avoid performance problems, I recommend you create as many rows in your table as there are “synchronised parts” in your text. Usually you have no really independent columns, but blocks which are loosely related, e.g. one column is original text, the second is a translation; or you have an official statement in the left column and comments in the right one.
Limiting the extent of a cell is the key to keeping good performance because Writer needs to cache the whole cell contents before computing layout and breaks. Having too large cells also causes instabilities and crashes.
And, finally, play only with native format documents, i.e. .odt. I have no idea about the added instabilities introduced by conversion to and from DOCX. Don’t hunt for supplementary trouble with an alien format.
PS: when asking here, also mention OS name, exact LO version and save format; describe your goal in author’s terms (what is your ultimate goal?); don’t ask for a fix on your present “solution”.