Create an Arrow of adjustable length but constant head dimension
DisJoin &amp; use Limit Scale Constraint

A quick solution could be to disjoin the object in two pieces and assing scaling constraints to the arrow's head. Then parent the head to the body in order to acquire the transformation info we need to keep the object consistent (location &amp; rotation).

In the image below you can see the constrain applied to the head. The origin of the arrow's body has been set to the tail (it seemed handy to me to have it there, but you can change)



As the head object has been parented while there was an offset between itsel and the body's origin, while scaling the body, a scaling of the head still occour, but because of the constraint, only the location of the object is being scaled (and so the head stays in place)