I would say profile first!
Physical location does not affect access time. The address space seems linear, but can actually be mapped to any page of physical memory.
You need to set up custom distribution and VirtualLock to gain control over the physical layout of the pages.
Notes
Usually using shared DLL files mitigates the problem that you have clearly identified by sharing pages with other processes that share the same image. This results in fewer cached pages and less need to replace them.
I would say that the data file is not actually displayed, but rather is allocated from the private address space of processes, so locality may look like statically related data. You can try using a heap debugger / visualizer to find out how this works).
If you want a simple way to get complete control, just extract all the things from HEAP - using your preferred distribution scheme. If there is static data from a DLL, just copy it to this area?
sehe source share