I modified your workbook to add this on the worksheet change event. it is not the most elegant but it might work.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)tcol = Target.Column
trow = Target.Row
arhead = Range(Cells(1, 1), Cells(1, 16))
thead = arhead(1, tcol)
For i = 1 To 30
For j = 1 To 16
With Range(Cells(i, j), Cells(i, j))
.BorderAround Weight:=xlHairline
End With
Next j
Next i
If trow < 31 Then
For i = 3 To 16
If thead = arhead(1, i) Then
With Range(Cells(trow, i), Cells(trow, i))
.BorderAround Weight:=xlMedium
End With
End If
Next i
End If
End Sub