I must say that I think this model of auditing is a nightmare. And I think you've stumbled upon why. It's very, very hard to reproduce the data as it was using this scheme, not the least of the reasons is that you don't have the data type of what's being changed. And even if you did, you could very well lose precision in the conversion between a string and your native data type.
No, I think your original idea is much better -- just simply cutting the table rows over. Most of the time, you don't have to worry about the extra space consumed. Space is cheap compared the tradeoff in usability that you're making by cutting changes over by column.
Also keep in mind that the scheme that the article describes doesn't even save space for very narrow tables! It actually might be bigger than the row-level auditing one.