I believe your objective here is to have a grid of buttons, yet control generates rows.
At present your solution is to try and combine three different manipulate variables. Unfortunately things are not set up to do this easily!
Luckily we can generate a button grid by bypassing Control and using SetterBar. For example try:
{SetterBar[Dynamic[x], Range[6],
Appearance -> "Horizontal" -> {3, 3}], Dynamic[x]}
Unluckily Manipulate doesn't take explicit SetterBar controls! It appears Manipulate only eats Controls (which can yield SetterBar controls), and I can't find a way to pass the above appearance specification. Though it may be possible. Must you explicitly use Manipulate for your application? Does a dynamic setter in another context suffice?
Find a solution attached.
Attachments: