><>, 6 5 bytes
-1 thanks to Jo King!
:n?!;
How?
Instruction pointer starts at the top left (i.e. 0 or 1) facing right. If the instruction pointer leaves the code it wraps around to the other side, continuing in the same direction.
X:n?!; - X=0 X=1
X - push X {0} {1}
: - duplicate {0,0} {1,1}
n - pop & print {0,} "0" {1} "1"
? - pop & if... {} {}
! - ...truthy: skip & wrap to X
; - ...falsey: exit