move clip to next empty channel script
Here is a test script.  All strips on channel 1 are selected, sorted by frame_start,  then added to channels 2, 3, 4 etc.  and extended to the frame_final_end of each to the frame_final_end of the last strip.

import bpy

context = bpy.context
scene = context.scene
se = scene.sequence_editor

strips = [s for s in se.sequences_all if s.channel == 1]
strips.sort(key=lambda x:x.frame_start)
print(strips)
end_point_of_last_clip = strips[-1].frame_final_end
for i, s in enumerate(strips):
    s.channel += i
    s.frame_final_end = end_point_of_last_clip