I'm not sure I understand, you want the client app to update visibility on the server? If yes, I think this is a request you may want to post in the ArcGIS Server team.
In the SubLayerList sample, you need not make every sub layer show by default. ArcGISDynamicMapServiceLayer.VisibleLayers can be an empty int[] {} that can be updated everytime a checkbox has been checked.
Ah that means you only need to tweak the SDK sample a little bit. I've had this sample for awhile, kindly see attached. The client app will not have any layer visible sub layer until the checkbox is clicked.