Inside the style.css file you set
.claro .dijitButton .dijitButtonNode, .button {
width : 40px;
}
This has the negative effect of setting the buttons inside the Table display to 40px; (which is too small, they become squished).
I'm not exactly familiar with the way you're creating the buttons, but one fix I found was to set a width to a more specific class:
style.css :
.opSize .dijitButtonNode {
width: 40px;
}
And widget.js :
(In the _initButtons function):
class: "button opSize",