If you're starting with the data structure in your example, do this:
df <- data.frame(lapply(l, function(x) x[-1]))
names(df) <- lapply(l, function(x) x[1])
If you have a choice on how to construct the data structure, do what R_Newbie says in his answer.