When I am on the ground and set my altimeter according to the reading given by ATIS, why would my altimeter read below sea level? (the airport is at 29ft above sea level).
Most likely cause is your altimeter is slightly out of calibration -- the tolerance limit for the biennial 91.411 test is +/- 20 feet at sea level (see Part 43, Appendix E, Table I), and "below sea level" is more than 20 feet off from 29 MSL. However, since the operational tolerance is +/- 75 feet, you may still be good to go within the FAA's recommended parameters (depending on just how far below sea level it's reading) -- see AIM section 7-2-3. However, I'm not sure I'd be so happy flying an ILS to mins with an altimeter that read 75 feet high. So, what to do?
One thing to check if your altimeter error is larger than usual is the elevation of your parking spot versus the field elevation. Field elevation is the highest point on the operating surface of the airport (runways, taxiways, etc), so depending on the airport topography, with the reported altimeter setting, you may often see a lower altitude on your altimeter than field elevation. For example, the south ramp at Pittsburgh Int'l (KPIT) is about 100 feet lower than the field elevation (measured at the approach end of Runway 10L) due to the slope of the airport surface.
In addition, if you find your altimeter is consistently off by a fixed amount, consider noting that error and adjusting all altimeter settings accordingly. For example, if it always reads 40 feet high, then subtract .04 from every altimeter setting and put that in the Kollsman window. That's why there was a little "+.04" written on the panel of our Cheetah next to the altimeter -- it always read 40 feet low.
Is there an adjustment I or my A&P can make?
Other than the input correction mentioned just above, no -- nobody can legally tinker with an altimeter except a certified repair station with an instrument rating.