This matches your description, but not the output you show:
mat = as.matrix(d)
matrix(paste0(mat[, seq(1, ncol(mat), by = 2)],
mat[, seq(2, ncol(mat), by = 2)]),
ncol = ncol(mat) / 2)
# [,1] [,2] [,3]
# [1,] "11" "44" "23"
# [2,] "72" "79" "75"
# [3,] "85" "38" "12"
# [4,] "29" "87" "59"
# [5,] "96" "21" "94"
You could, of course, convert the result to numeric, back to a data.frame, etc.