Add a Block ABOVE view
Yes. The thing is, I need different content in this block depending on
  the current view. So I'd need to create 20+ different blocks for each
  of my views which seems redundant. I'm sure there must be more elegant
  solution.


Create a block and use template_preprocess_block to alter the content based on the path. In your theme's template.php add:

mytheme_preprocess_block(&amp;$vars) {
  if ($vars['block']-&gt;bid === 'target_block_id') {
    $path = current_path(); // gets the current page path. 

    switch($path) {
      case path1: 
         $vars['content'] = "Hello World";
         break;
      case path2: 
         $vars['content'] = "Hello Kitty";
         break;
       // ... and so on and so forth.
    }

  }
}


Note: replace mytheme with your actual theme name, same for 'target_block_id'. 



Another possible option, would be to add a header to your views, and then just use CSS with absolute position to move it, this would mean you'll need to add some padding-top: or padding-bottom on some other div to create a space for it.