I have done the surprise Disney thing, telling a few days before Disney thing, and telling way in advance Disney thing. I have to say the surprise one was the least enjoyable reveal. It just didn't really sink in....everyone was more confused than excited. I thought it was a great idea at the time I decided to do the surprise, but in the end was sorry I had kept it a secret. Telling really far was fine, but the few days before was wonderful. It gave enough time for everyone to tell the friends and get super excited, and was short enough that the trip was imminant.
If you go for the total surprise, make sure you know where his passport or certified birth certificate is. Make sure he takes his photo ID with him also. He'll have to sign some documents at the port if you have not shared the surprise ahead of time....contract, etc.