I like what you're doing (and we already have some of this in UploadWizard). I would only disagree with the "horizontal" style here as I think it is hard to make that work universally, especially in languages that are more verbose. I think vertical should be mandated.
Another question there is whether a large number of errors can "push down" the rest of the form. While in theory one could just "double space" the inputs out, and hope that it all worked, it seems inevitable that an error condition will push the rest of the form down, sooner or later.