I think Michael's question is still valid here: What do you intend to achieve by using an in-memory graph? Of course if the available memory is limited as compared to the volume of graph data, any in-memory solution will have to resort to some kind of disk-based paging once memory is full. If what you are trying to solve is performance issues, there are ways to make Neo4j keep everything in memory, but that needs ample memory and some customized handling of caching and memory allocation parameters.
Ref:
Principally if you make enough memory available to Neo4j, manually set memory map sizes and opt for strong caching you should get the equivalent of an in-memory graph after one traversal over the whole graph. With strong caching Neo4j doesn't ever kick anything out of cash once loaded.
Cheers,
Mah