Microsoft could come up with their own license that was "open source" but not "free software" by Stallman's definitions (ignoring here the people who've attempted to make these terms synonymous), which would allow people to change code and distribute freely among license holders, but not allow people to resell or just give out copies of Windows. I'd actually be really excited about this, because I think the FSF is overboard with their demand that everyone essentially make their software unsellable.
They could go the Red Hat route, go GPL, accept that they'll no longer get money for software licenses but instead support contracts (they could even try selling these to consumers; Dell would pay MS $50/PC not for a copy of Windows, but for a subscription to Windows Update). This would shift the dynamics of the company a bit, but probably not as much as one may think, since enterprise keeps MS afloat anyway, and it may be a good solution.