The time sync is fairly simple. Each node can send one of two packet types to the coordinator. One is a data packet with sensor readings, and the other is a time sync request packet. The latter causes the coordinator to send its current time back to the requesting node, which then sets its clock to the time sent.
Another approach with such a large number of nodes would be to just randomize the transmissions, that should also have the effect of spreading the traffic out over time.
As for turning lamps on 1000 nodes off at the end of the day, I assume that needs to happen nearly simultaneously, or maybe over a few minutes at most? I don't understand the broadcast limitations well enough to really know if it might work reliably. Some reading, research, and testing would be in order. Another approach would be for the coordinator to assume some fixed range of node names (X0001 to X1000 or whatever) and address each node individually using the DN command. 1000 nodes shouldn't take more than a few minutes I wouldn't think.
The physical layout of the 1000 nodes will be a factor in network design. The number of hops to get from the coordinator to any given node is probably an important parameter. There are related parameters that can be set in the XBees to tune network performance. I've never needed to do so, having worked only with small networks with minimal hops.
I'd search the Digi web site for best practices for large networks. I'd probably also call their tech support. If you're buying 1000 XBees, I'd bet they'd be happy to talk with you. My friend ordered just a few XBees and they gave him a call one day just to see how things were going or if he had any questions.
Very interesting project, keep us posted.