I suspect the non-linearity you've noticed may be due to the center of gravity (CG) of the needle not matching with the center of rotation.
The CG of the needle is where the needle balances if you were to balance it on your finger. This is the point where the needle should be attached to the servo, and reduces the torque the needle applies to the servo. A counter balance can move the CG towards the center of rotation, but increases the overall weight/mass of the pointer (not a problem here).
Not that the servo can't handle the torque and weight, but there is always some mechanical slop in the physical system. A minor improvement would be to include a light spring on the servo shaft to apply a light, consistent torque (same direction, almost constant force) to reduce slop to zero in one direction (don't care about the other direction).
After that, you're left with gear cogging - can't do much about that. This would be a cyclic error across the range of motion.
Actually, the non-linearity was noticed and calibrated with the clock laying flat, so no gravity at play there. Setting it upright made no difference in position. With a 90 degree sweep, the non-linearity was not noticeable. It's only with the 120 degree sweep where the needle would be on the wrong side of a given mark.
I believe the particular servo I used is spec'd for a 90 degree swing. It will actually swing more than 180 degrees, but the accuracy isn't as good.