Try ticking the “Save Buffers” check box on the Performance tab under the Render properties. This was designed to save memory and is supposedly optimizable in conjunction with the “Tiles:” field. More X parts and Y parts is supposed to optimize memory usage (to a point) when writing these tiles to disk.
Unfortunately, any time I’ve needed this, my scene was big enough to crash blender any way. Splitting the render into several scenes will definitely save memory as memory gets completely freed between scenes but you may end up crashing Blender during the composite if you run out of buffer space due to too many images clogging up memory.
I had asked one of the devs if they could and a feature to allow openexr to limit all files to 16 bits per channel rather than the standard 32 bits (16 is more than adequate for any vfx work) but was told “No Way”. This kind of option would stop many of the crashes that occur since all images like 8bits per channel .jpg’s are converted to a minimum of 32bits rgba upon import into Blender.
Other than these options or compositing in another app, you may be out of luck.