Here's an idea
Make the total network infrastructure including BT's and Virgin's owned by a single company. Make all the intersested parties (BT, SKY VM etc) co-owners of that company.
Naturally, this won't fly because VM etc won't want to pay to maintain for the last mile in countryside. But it would stop them complaining about not getting access to BT's infrastructure.
If they want to improve the network then each of them will have to stump up to fund it. Yeah and pigs might fly...