How do I use “while” and “end while” inside of the echo do_shortcode with ACF Repeater?

You need to generate the shortcode within the loop, and then execute it afterwards:

if ( have_rows( 'homepage_slider' ) ) {
    $shortcode="[ux_slider timer="4500" arrows="true" bullets="true" auto_slide="true" nav_color="light"]";

    while ( have_rows('homepage_slider') ) {
        the_row();

        $shortcode .=
'[ux_banner bg=" ' . get_sub_field( 'slider_image' ) . ' " height="600px" text_color="light" text_align="center" text_pos="center" text_width="70%" parallax_text="0" parallax="3" effect="sparkle"]
    <h1>' .  get_sub_field( 'slider_slide_title' ) . '</h1>
    <h4 class="thin-font">' . get_sub_field( 'slider_sub_title' ) . '</h4>
[/ux_banner]';

    }

    $shortcode .= '[/ux_slider]';

    echo do_shortcode( $shortcode );
}