All you need is incubator project CB Queries. From there you'd perform an external database query after the registration trigger and create the user. You'll need to ensure ACL is covered and the core features of the user are covered. Below would be an appropriate query for CB Queries.
Code:
INSERT INTO `#__users` ( `name`, `username`, `email`, `password`, `usertype`, `block`, `sendEmail`, `gid`, `registerDate`, `lastvisitDate`, `activation`, `params` ) VALUES ( '[name]', '[username]', '[email]', '[cb:userdata field="password" /]', '[usertype]', 0, 0, [gid], '[registerDate]', '[lastvisitDate]', '', '\n' );
INSERT INTO `#__core_acl_aro` ( `section_value`, `value`, `order_value`, `name`, `hidden` ) VALUES ( 'users', ( SELECT `id` FROM `#__users` WHERE `username` = '[username]' ), 0, '[name]', 0 );
INSERT INTO `#__core_acl_groups_aro_map` ( `group_id`, `section_value`, `aro_id` ) VALUES ( [gid], '', ( SELECT `id` FROM `#__core_acl_aro` WHERE `value` = ( SELECT `id` FROM `#__users` WHERE `username` = '[username]' ) ) );
Please note the above is just an example and may need changes. Please ensure you've tested it thoroughly before deploying to a live site. Beyond this I can't help you with synchronizing tables as CB has no support for multiple DBs, sorry.