home.php show blog posts as grid view

It’s a little bit hard to guess, what exactly do you want to achieve (you’ve mentioned something about four posts in a row and then there is number 6 in your for loop), but…

If you want to display only 4 posts in your loop, then you can use current_post field of $wp_query, so the loop may look like this:

<?php while ( have_posts() and $wp_query->current_post < 4) : the_post(); ?>
    <div id="home_post_<?php echo $wp_query->current_post ?>">
        <?php get_template_part('template-parts/content', 'home'); ?>
    </div>
<?php endwhile; ?>
// you don't do anything if there are no posts, so there's no point in checking if (have_posts())

Another thing worth to remember is that if you’d like to show only 4 posts on your home, then it’s a good idea to modify query accordingly – so it doesn’t get redundant posts.