Hide author info in single posts by certain users

No, there’s no need to use wp_set_current_user().

I was wondering how to fire wp_head action if single post by certain
users (either by user ID or username)?

You can use $post->post_author to get the ID of the author of the post, and put the user ID list in an array, then just do in_array() to check if the author ID is in the ID list. For example:

function hide_author() {
    //global $post;     // Instead of this,
    $post = get_post(); // I would use this one.

    // Define the user ID list.
    $user_ids = array( 1, 2, 3 );

    if (
        $post && is_single( $post->ID ) &&
        in_array( $post->post_author, $user_ids )
    ) {
    ?>
        Your code here.
    <?php
    }
}

And that example would run only on single post pages and that the current post’s author ID is in the $user_ids list/array.