The LayerList Widget's code for check boxes can be found in the LayerListView.js and Setting.js
I don't know how difficult it would be but there is where I would look first.
Both scripts use this:
I did not change the checkboxes to radio buttons but the functionality behind the checkboxes for sublayers in a map service act like radio buttons (i.e. only on sublayer is visible at a time).