Dont use normal mosfets, use a proper automotive rated high side driver IC. Something like the VN5E010
The VN5E010 has...
- Low on resistance so doesn't get very hot.
- Operating voltage 4.5 V to 28 V
- Internal back EMF clamping for inductive loads (it has a limit but can handle most stuff)
- High current capability (85A max, internally limited) but you probably wont want to switch more than 20A per chip anyway.
- Internally protected form short circuit to power and ground (it just shuts off if it gets too hot from a short)
- Reverse polarity protection (It's internal fet turns on under reverse polarity, so the body diode doesn't explode
)
- Analog current sense output. So you can measure the current with a mcu ADC. (You can also chain lots of the chips together so they all share 1 ADC channel. Then you just need 1 digital output per chip to enable its sense output so you can read its current in sequence)
- Fault detection output (part of the current senses line, it goes high if the chip goes into protection mode)
- Simple CMOS compatible on/off input. So you can drive it directly from a MCU output pin.
And it's rated to be used in automotive applications.
Costs $2.85 each in qty of 10 from digikey.
It's SMD though, so if you want TH you'll need to find different brand/version. (There's a range of these sort of chips available, eg BTS6133 google "automotive high side driver")
I like the VN5E range because the switching time is fast enough to do slow PWM without too much extra heat.
You could strobe your headlights with 100Hz pwm
Be aware though, different lamps respond differently to brightness control. Some lamps will actually fail if you don't run them at full power. If i remember correctly halogen lamps dont like running at under 80% of their rated voltage. Not sure if this would apply to PWM.