Full Plate
Medieval Europe had two qualities of knightly armor: a far-less-expensive full plate that wouldn't stop a bullet, and a much more expensive option - about 1/4 inch thick, with two layers - that was both easy to move in, and completely bullet proof.
Much like Don Quixote running amok, a "lobster" in high-quality full plate was very challenging to take out of combat by any method other than tripping them up, tangling them, or sinking them.
Dwarves, with their fuller hammers and forges, maybe have a much higher percentage of their army wearing good plate armor.
Tower Shields and Formation Defense
Rome's famous military contribution: a body-sized shield made to interlock with the one of your nearest neighbor. Interlocking shield to shield in a practiced formation maneuver, your squad mates can help you to absorb even heavy hits on your shield. At the same time, you can stab back through the wall with stabbing weapons.
Traps
A counter to good plate would, of course, be something the dwarven armory also possesses in quantity:
- Pits,
- List item
- fall-away floors (when weight is greater than some threshold),
- triplines,
- caltrops,
- gas (great for taking out armored adversaries),
- lodestones (throw a few hundred lodestones on the floor - watch the fun begin as the advesary starts collecting magnets on their gear that just stick like goo),
- floods (water being directed down certain passageways to "flush" bad guys)
Polearms
Polearms are good for piercing heavy armor and shields. It would seem likely this gets good representation in the dwarven armory.
Maskirovka
For a little bit of character, maybe the dwarves have been inspired by (or inspired) Russian military thought. Under the mountain is an excellent place for deception tactics , including :
- whistles, flutes, and calls that can be used to "project" a sound down a tunnel,
- symbols and chimes to exaggerate the number of soldiers in a force,
- floating lights to misguide the unwary,
- stink bombs,
- animal lures