Linux has shared memory with copy on write (see the MAP_SHARED flag to mmap, I think). I'm not an expert on shared memory programming.
That said, sharing the heap like this would likely be fruitless. Fork uses shared memory because C programs that fork are either spawning versions of themselves to handle things like sockets or are about to exec another program on top of themselves. Copy-on-write optimizes those cases fairly nicely.
With Lisp, if you have a heap that's being GC'd, all those pages that the GC touches will probably be written to (mark bits, copying collectors, etc.), thus destroying the advantage of the shared memory. SBCL has a heap that is not GC'd, and that might be a candidate for what you want. Note that lack of GC doesn't necessarily mean lack of writing to a page at all, so I'm not sure if it would actually fulfill the requirement. Most other Lisps have simpler GC schemes without a permanent heap, however, so they would probably not work.
Finally, note that there is no way to configure SBCL to use this (from what I know at this point). You'd have to hack it.