This might be possible with Phex, by setting up one instance as forced Ultrapeer on the central server, and the others as leaves with only the Ultrapeer as starting IP, only one desired UP connection and no allowance to go to UP.
You'd have to set the UP to allow many Leave-connections, and set every client to block all ports except he non-standard port of the UP (not 6346), so they don't connect outside.
I might be able to compile Phex in such a way, that it does that, but I'm not really sure.
Still Users could simply change the settings (Phex is openly configurable), when they want to.
If you are interested, I can try to set it up (will take a bit of time, though. This weekend my girlfriend's here, so I won't have time to dabble with Gnutella
).
Through security settings I can also block any result from outside your LAN, so noone will ever see a search result from outside.
By setting it up as rivate Network, Programs fro outside can be shunned completely.