Hi,
Yes, you can do it. You create additional header.php files to match specific page templates.
For example:
You already have a default template; you can make that your dog page, that uses by default header.php with the include tag, <?php get_header(); ?>. header.php has the dog stuff in it.
Create a new header file and call it header2.php. This is the same as header.php, but has the cat stuff in it.
For the second page, the cat page, create a new page template and call it cat.php. This could be simply a duplicate of the default template, but with the include tag <?php include (TEMPLATEPATH . '/header2.php'); ?> instead of <?php get_header(); ?>. This ensures that the cat header is matched with the cat page.
You can create additional pages, by naming new header files (header3.php, and so forth), and naming page templates that have matching include tags.
Hope this works for you.