If 512mb are needed as contiguous space, then one hacky solution is do define a BSS section of 512mb, or in "C" terms - global array -
char mem[512 * 1024 * 1024];
the executable loader would "allocate" this memory before loading any dlls, and later dlls that were supposed to be in that memory would be rebased
Oh, and somehow Go would need to use this memory rather than allocate it.