There may be cleaner ways to do it, but I think this will work:
<?php
$args = array('post_type' => 'music-playlist');
$query = new WP_Query($args);
$cntr = 0;
while( $query -> have_posts() ) : $query -> the_post(); $cntr++; ?>
<section class="row-wrap">
<div class="row-inner">
<?php if ($cntr % 2 == 1) { // first or third items, poster-content first ?>
<div class="poster-content">
<h1><?php echo(types_render_field('playlist-name', array('raw' => true) )); ?></h1>
<p><?php echo(types_render_field('description', array('raw' => true) )); ?></p>
</div>
<img class="poster" src="https://wordpress.stackexchange.com/questions/205527/<?php echo(types_render_field("artwork', array('raw' => true) )); ?>">
<?php } else { // second or fourth, img first ?>
<img class="poster" src="https://wordpress.stackexchange.com/questions/205527/<?php echo(types_render_field("artwork', array('raw' => true) )); ?>">
<div class="poster-content">
<h1><?php echo(types_render_field('playlist-name', array('raw' => true) )); ?></h1>
<p><?php echo(types_render_field('description', array('raw' => true) )); ?></p>
</div>
<?php } ?>
</div>
</section>
<?php endwhile;
?>
It uses the $cntr
variable to track which post it’s on, and shows the image or the div depending on its even or odd – if ($cntr % 2 == 1)