By default Proc Report will left justify text fields, removing spaces as needed.
You would need to define a style override for the variable to use Style =[ASIS=On] in a define statement.
Something like:
proc report data=work.x;
define x / style=[Asis=on];
run;
You are likely to get some interaction between the actual column width and your newlines making it appear as if there are extra blank lines if your column is not wide enough depending on Ods destination and I'm not sure about a consistent fix for that.