User:Psychon

Assuming you use something based on the default config (tags array is used here) and awesome 3.4 or newer. Somewhere after all the tags are created (awful.tag() being called), add this:

function force_tag(i, sel)
for s, tag in pairs(tags) do
tag[i].selected = sel
end
end
for s = 1, screen.count() do
for idx, tag in pairs(tags[s]) do
tag:add_signal("property::selected", function(t) force_tag(idx, t.selected) end)
end
end