Recent advances in smart grid technology enable new approaches to address the problem of load control for domestic water heating. Since water heaters store energy, they are well-suited to load management. However, existing approaches have focused on the electrical supply side, ignoring the obvious link between the user and the grid: individual hot water consumption patterns. This paper proposes a load spreading approach in which water heaters compete for access to the heating medium. The proposed smart grid solution takes grid load limits, real-time temperature measurements, water usage patterns, individual user comfort, and heater meta-data into consideration. The scheduler only turns on the heaters with the highest level of need, but limits the number of on heaters to ensure that the grid load stays below a set limit for a set time. The method is evaluated by simulation against various heater set temperature levels, and for various load limits, and compared with ripple control and actual consumption measured in a field trial of 34 water heaters. The proposed algorithm reduces the load from 62kW to 20, 30, 40, and 50kW (vs. 106kW for full ripple control). The resulting number of unwanted cold events is fewer than for ripple control, and only slightly more than no control, while reducing the total energy by 14% from a user-optimised natural experiment.