Inserting into WP DB

Use wp_cron to run a job every hour. http://codex.wordpress.org/Function_Reference/wp_cron
Use $wpdb->get_results to fetch data from your external table.
Example:

$q = "SELECT * FROM my_table";
$results = $wpdb->get_results($q, OBJECT);
foreach ( $results as $result) {
}

Insert new CPT-posts using wp_insert_post() http://codex.wordpress.org/Function_Reference/wp_insert_post