I just checked in Delphi 6 and it does not add the new line.
I tried your suggestion, Antonio, and although it does partially solve the problem (except that it removes any trailing spaces, but that could be fixed) the trouble is that the new line is added when the text is written to the control, so the cursor is positioned on the next line. This is a problem because I want it to be like a real terminal window where you can type text as well as have received text printed up.
The original Delphi code didn't use a TMemo. It derived from TCustomEdit and made it multi-line with word-wrap and a scroll bar. Unfortunately the method used to achieve this - by recreating the window after adding some styles - doesn't seem to work with the LCL and despite much studying of the LCL source code I haven't figured out how to do this.