Alexander,
I was suggesting something like this. I made two changes. First, I used MenuView to create the two menus. Next I Changed Grid[{}] to a spacer to keep the spacing in your If[]. I only did this in one place but it places a 12 x 20 point space to hold the vertical and horizontal spacing.
Spacer[{12,20}]
The background colors need some touchup to match but it should give you an idea of the menuView approach.
Manipulate["Hi",
MenuView[{"Menu 1" ->
Grid[{{Dynamic[
Grid[{{Control@{{menuInterf, 1,
"Operation mode:"}, {1 -> "Manual", 2 -> "Automatic"},
ControlType -> RadioButtonBar}}}]]}, {Dynamic[
If[menuInterf == 1,
Grid[{{Control@{{quantWaves, 1, "Number of waves:"}, {1, 2},
ControlType -> RadioButtonBar},
If[quantWaves == 1, Invisible[xxxx], Grid[{}]],
Control@{{showSumWaves, False,
"Show sum of waves:"}, {True, False},
ControlType -> Checkbox}}}], Spacer[{12, 20}]]]}},
Alignment -> Left, ItemSize -> {60, 1},
Background -> GrayLevel[0.92]],
"Menu 2" ->
Grid[{{Dynamic[
Grid[{{Control@{{menuOndasEstac, 1,
"Stationary waves:"}, {1 -> "Two nodes",
2 -> "Node and antinode", 3 -> "Two antinodes"},
ControlType -> RadioButtonBar}}, {Control@{{harmDispon,
1, "Harmonics:"}, Dynamic@harmonics,
ControlType -> PopupMenu},
Control@{{mostrOndasOrig, True,
"Show original waves:"}, {True, False},
ControlType -> Checkbox}}}]]}}, Alignment -> Left,
ItemSize -> {60, 1}, Background -> GrayLevel[0.92]]},
Background -> GrayLevel[0.92]], Initialization :> (menuInterf = 1;
harmonics = Range[10];)]
Regards,
Neil