A simpler solution would be to require that blocks are always 1 MB (or whatever) in size, and that they must be padded out with 0xDEADBEEF or whatever if the block can't be filled with transactions. This way all blocks will take the same amount of time to transmit, and there's no incentive not to include a transaction of any fee if what it's replacing would just be bad data.
I'm not saying I'm in favor of this proposal necessarily, but it works better.
It's not possible to ensure that all miners are operating on the same transaction set.
[0]:https://gist.github.com/gavinandresen/e20c3b5a1d4b97f79ac2
An easy way to understand the proposal is to think about it in terms of forward error correction.
The design is an improvement over the existing relay network to compactly encode transactions which are not yet fully relayed.
In practice the improvement is very small.
Information on the existing relay network is available here http://bitcoinrelaynetwork.org/