How can i maintain permalink structure and avoid a 404 error when loading external content?

You could use a WordPress rewrite (as opposed to mod-rewrite) to solve the issue.

function createRewriteRules( $rules ){
    $newrules = null;
    $newrules = array();
    $newrules["catalog/?$"] = "index.php?page=xx";
    $rules = $newrules + $rules;
    return $rules;

add_action('rewrite_rules_array', 'createRewriteRules');

You’ll need to flush the rules:

Your page-catalog.php file could then sniff the original url and do some processing as required.