You can use match
:
l <- list(row1 = setNames(1:3, c("A", "B", "C")),
row2 = setNames(1:3, c("B", "C", "A")),
row3 = setNames(1:3, c("C", "A", "B")))
do.call(rbind, lapply(l, function(x) x[match(names(l[[1]]), names(x))]))
The result:
A B C
row1 1 2 3
row2 3 1 2
row3 2 3 1