There is no way to stretch the heading across multiple columns using the built-in legend functionality in ArcMap. You could repeat the heading across both columns by splitting your layer into two, but that's probably not desirable.
My recommendation would be to hide the layer heading in your legend and use a static text element (e.g. Rectangle Text box) to show the heading text. That way you can fine-tune the placement of the heading for maximum visual appeal.
When doing batch mapping with
arcpy.mapping, I frequently convert my legends to graphics to allow programmatic editing of legend text elements; this is also possible via the
LegendElement object in Arc 10.2+ but there are irritating bugs with this approach where editing the class labels changes the symbology. You can also use Python to toggle element "visibility" by moving graphic elements and text elements outside the margins of the layout.