Well you can first split your original tensor in half, reshape both halves and concatenate them again:
# initilizing list 
X = list(range(0, 24))

# converting list to array 
X = np.array(X) 

# converting array to tensor
X = torch.from_numpy(X)

# split tensor in half
X_split = torch.split(X, int(X.shape[0]/2), dim=0)

# reshape the two tensors
X_left = X_split[0].view(3,-1)
X_right = X_split[1].view(3,-1)

# concatenate the reshaped tensors again
X = torch.cat((X_left, X_right), dim=1)

That wil give you:
tensor([[ 0,  1,  2,  3, 12, 13, 14, 15],
        [ 4,  5,  6,  7, 16, 17, 18, 19],
        [ 8,  9, 10, 11, 20, 21, 22, 23]])