Note that in Delphi AND FPC the single element size for e.g. arrays is exactly 4G minus some management code in a 64 bit environment.
So apart from streams, you will probably be still stuck if you want to use single variables over 4 G. But you can use as many of them as physical memory allows.
As I wrote: otherwise that needs a stream, possibly a buffered stream.
Can you enlighten us WHY the single variables need to be so big? (with example code we can test) and if you an provide Delphi code that says otherwise?