You can of course set some UpValues but I would not go this way as it may be tricky and long before you get something really general.
UpValues
You can always use Unevaluated:
Unevaluated
a = b = c = 1; Map[Hold, Unevaluated@{a, b, c}]
{Hold[a], Hold[b], Hold[c]}