You mentioned this only being needed when printing. Since this is the case, you are creating a report anyways, yes?
Make your query such that it displays only the room # and FullName (not the roommate).
Sort by room, you will now see that it shows room twice, and each of the people who stays in that room. Now, in a report, make two columns, and put the room # in the header. Full name in details. Setup columns to go across then down. It should show the room number, and two roomates on the next line.
If you want them in on line, you can use a sub report that is just as above, but does not show the room number. (although still make a blank header/grouping for the room). If you view the subreport, it should show each pair of roomates on one line and then go to the next line, and repeat.
Go back to the original report, and put the subreport in the header of the room group, right after the room number. Make lables above as neccesary.
Not sure how to do this in a query though.