input SUBJECT $ START END VAR1 $ VAR2 $;
1 1 4 xx yy
1 5 6 xx zz
2 1 3 yy ww
data WANT (drop= START END);
retain SUBJECT TIME VAR1 VAR2;
do TIME = START to END;
This wouldn't require an array. SAS data steps loop automatically so no need to control that. You need to output multiple records per line so create a loop and use an explicit OUTPUT statement to print that line out once for each time.
In SAS arrays are used for working with multiple variables with the data on a single row, though you can across rows it's a bit more complex. It is not used to represent columns however.