Since shapes can have names, if you name one (or know the default name Word has allocated to it) you can reference it by that. Alternatively, you can loop through them using code like:
Code:
Dim i As Long
With ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary)
For i = 1 To .Shapes.Count
With .Shapes(i)
'change a property
End With
Next
End With
The problem with looping through a shape collection or referencing them by index #, though, is that the position on-screen doesn't determine the index #; that is determined by where the shape is anchored and what other shapes are anchored at the same position.