Some games use realtime loading. The technique would be to convert your models into a format that you can load in a streaming fashion (i.e. a bit at a time, so the frame rate doesn't drop), and then create them when needed.
For example, you could convert your objects to a memblock in code. Then cut that memblock into 10 smaller pieces and save them all. Then, when approaching a transition point in the game, identify that the room will need to be loaded and begin loading one file per second for example. Once they're all loaded, you should be able to combine them into one memblock and then create an object from that memblock with a very small pause.
If the player moves away from the transition point and towards another, you dump what you loaded so far and start loading the next lot.
So you'd need to:
a) Write a small program that can take a model file, convert to memblock, split into small loadable memblocks and save to files.
b) Write a function that can load these sequentially and rebuild your room.
c) Write a function that uses portal triggers to know when to start loading the next room.
You may need to use the same process for your image files if they're large too.
I vaguely remember someone may've written a plugin that can do realtime loading for you, but I couldn't find it with a quick search.
It's definitely possible to do realtime loading, but as Pincho has said, your world doesn't look as detailed as I would expect for you to be running out of memory so soon. Either way though, if you can crack realtime loading, then your world can be as large as your HD allows, which is quite an awesome prospect.