You could do loop arounds. Loop Line 1 to an unused extension. Program that extension to only receive Line 5. Restrict that extension. Do the same, looping Line 2 to another extension, and that extension gets Line 6. Move the actual dial tones from 1 and 2 to 5 and 6.
When you go off hook on line 1, you are accessing an extension that goes off hook on line 5, but that extension is restricted!
It's a strech, I know........