Is it possible to create duplicate post on other site (either push, on publish, or pull, periodically)?

You could add a filter to the post publish process in site A. The filter would check for the tag/category, and if found, run a process to create a post in Site B.

See https://codex.wordpress.org/Plugin_API/Action_Reference/save_post . Something like:

add_action( 'save_post', 'my_site_b_create_post' );

function my_site_b_create_post($post_id) {
   // check for category
   // if category, then save content of site A post into variable (maybe title, author, etc)
   // create post on site B
   return;
}

Adding that hunk of code to the functions.php of Site A (in a Child Theme, of course, so a theme update doesn’t bork your code).