In short,
you can't.
From your code it looks like you are delivering a spreadsheet to the user at runtime by responding to an HTTP request. You are doing so by setting the MIME Content-type header. This tells the client's browser what type of document to expect; in this case, Excel. This is the only document the client's browser expects, so the only way of adding a "header" would be to modify the spreadsheel and add a header to it before it is sent.
Another option would be to use iframes. The outer frame would container the header/title and the inner frame would link to your script above:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Report</title>
</head>
<body>
<h1>Report of best songs of all time</h1>
<!-- This should point to your script above. -->
<iframe src="excel_report.aspx" width="100%" height="300px">
<p>Your browser does not support iframes.</p>
</iframe>
</body>