You could take a look at my code and the link to Nick Gammon his code.http://arduino.cc/forum/index.php/topic,156639.msg1173834.html#msg1173834
If both the Wire.onReceive() and Wire.onRequest() are implemented, you can request the status from the I2C slave.
In my code I use registers which can be written and read. The first byte written is the address of the registers.
In Nick Gammon his code he uses the first byte (in write mode) as a command.
About your sketch, I would do it differently.
Why update the servos every 10ms ?
You only have to know when the I2C did update it.
You could add a global boolean variable flagUpdate and set it 'true' in your Command() function.
In the loop you can test the flag, and if it is true, clear it and updates the servos.
In Command() you check Wire.available(). I would use the howMany variable. But I don't know what is better.
The most usefull addition would be to know the current of the servos. But that needs extra hardware. Perhaps a single hall-current-sensor to measure the current for all servos.
What if you could read the 5V or 6V voltage of the servos via I2C ?
If you want to expand it more. You could add the possibility to detach (and attach again) the servos. I learned this day on this forum that some servos go into idle mode after detach.
What if the ATmega8 checks the time of the commands from the Master. If nothing is received for some time, the master must be wrong and the ATmega8 turnes itself off.
Or a blinking led as a status ? A simple led can be helpful, you would only have to glance at the led to see that everyting is okay.
And perhaps a test mode ? The ATmega8 would test the servos one by one (perhaps measuring by the current). But I'm not sure a test of servos can be done.