By setting a block timestamp ahead 1 hour, and then keeping the next timestamps low by mining faster than others, he is tricking the difficulty algorithm into thinking block issuance is not too fast which keeps difficulty low. He can mine 16 blocks and the algorithm will think it has not yet issued enough coins for the hour, and it will even keep bringing the difficulty down. It's only useful if you can mine as fast as or a good bit faster than the network. The difficulty algorithm is apparently subtracting the median timestamp from the newest timestamp (the oldest block number which he mined first). He has determined both and thereby controls the difficulty and block issuance. At the 17th block, the old block with the newest time is out of the averaging window and suddenly the algorithm sees a lot of blocks were issued in a short time, and the difficulty starts rising. But he leaves it alone until others have a few blocks and so that the difficulty will reach its peak then start coming down again, and he can start over. He can do it 11 times a day x 17 which is pretty close to the 200 excess blocks per day it is issuing. Lowering difficulty for a while is a side effect, not exactly the purpose. The purpose is to spend only a little money on server time for a few minutes without the difficulty algorithm knowing it is issuing too many blocks. He can then stop and let others get blocks and they won't notice a big difference. This assumes the algorithm uses the most recent timestamp out of all the blocks as a type of "current time" to subtract from instead of using the highest-numbered block's timestamp. But switching to that may cause another problem. A fix would be [edit: wrong, see edit below] to make sure block times are always increasing, leaving the miner's the responsibility of keeping a universal time so they do not lose blocks. Then maybe they could make the difficulty algorithm substantially more accurate by using mean instead of median.
You can't simply force newest blocks to have a higher timestamp because everyone would be forced to make it issue blocks faster than real time: the cheater would add a lot of time to a block in the hopes others would not notice and then only his future blocks with a high timestamp would be valid. And so everyone would see the trick and keep adding time to stay ahead so their blocks are accepted. But this would lower the difficulty if they push it ahead too far, causing all blocks to be issued in a few days. A limit on advancing the time can be used (and already is), but as the difficulty lowers from people constantly pushing it there, they'll be able to push it there faster.