In terms of actual distance above nominal sea level, I'd expect the GPS to be more accurate most of the time - because it is not affected by all the things that make altimeters vary - changes in baromatric pressure, air temperature etc.
But two major caveats:
1) When the GPS gets height wrong, it can get it really wrong, and my GPS III Pilot sitting on the ground at home quite often cycles through a range of +- 60 feet over a period of a few minutes. Funnily enough my old Garmin GPS-12 doesn't do that.
2) Everyone else in the world willbe using altimeters, and air space boundaries, e.g. the bases of airways, the height of a MATZ etc., are based on altimetric standards not geometirc accuracy. So it's usually more important to hav an altimeter reading that is the same (inaccurate) figure as everyone else's rather than know your actual height above a nominal sea level (real sea level, of course, varies according to tides among other factors!)