In general the HeaderTemplate and the ContentTemplate have different functionality and behaviour compared to the ItemTemplate. Using the HeaderTemplate and the ContentTemplate (in the markup) you can create templates for every individual item while with the ItemTemplate you can create a template that is valid and can be applied to every item of the RadPanelBar. Therefore when you bind the RadPanelBar to datasource the HeaderTemplate does not appear and is replaced by the data that comes from the database. In this case a valid approach would be to create a HeaderTemplate in code behind and instantiate it in every item thus it would serve as a global template for all of the items. For example this help article
describes how this could be achieved using ItemTemplate (you could use the same approach for HeaderTemplate). However, currently this approach is not applicable since there is a bug that prevents the correct rendering of such template. Therefore I would recommend that you use the ItemTemplate in order to accomplish the desired behaviour.
Please note that you can not bind a HeaderTemplate to a datasource which is a current limitation of the RadPanelBar
the Telerik team