Intercept comment form submit/list by hook/filter

wp_list_comments() has no filters or hooks so its going to be a bit hard, what you can do is use comments_array filter hook

add_filter('comments_array','my_custom_comments_list');
function my_custom_comments_list($comments, $post_id){
    //if criteria are met
    //pull your comments from your own table
    //in to an array and return it.
    return $my_comments;
    //else return $comments
}

and as for “intercept the comment submit and process” chips answer would be the best way using preprocess_comment filter hook but you want be able to avoid WordPress form inserting the comment to the default table as well, so you can use wp_insert_comment action hook to remove the comment from the default table right after its inserted:

add_action('wp_insert_comment','remove_comment_from_default_table');
function remove_comment_from_default_table( $id, $comment){
    //if criteria are met
    //and the comment was inserted in your own table
    //remove it from the default table:
    wp_delete_comment($id, $force_delete = true);
}