Headers are files containing interface declarations. Those declarations are divided into different namespaces.
So a given header file may contain declarations that are contained within several different namespaces. Also several different header files may contain declarations for elements within the same namespace.
So headers are a physical way of dividing up the code and namespaces are a logical way of dividing up the code.
It might be worth mentioning that namespaces are used for ADL. This logical grouping can be used for a little more than just avoiding name collisions--it can facilitate the appropriate lookup of nonmember interface functions.