See the very last comment on this page, from jbeall.
Apparently, you could reassign $this from within an object in PHP4, but you can't in PHP5.
However, this technique sounds like some serious code smell. Scratch that...code reek 🙂
You could rewrite your class as a Factory object, whose sole purpose in life is to generate MySQL record objects, but that'd be slightly ridiculous for something as simple as this.
I'd suggest that dealing with your data directly as MySQL record objects is a bad idea, anyway. It makes it impossible to extend the class with methods to update or delete the record, insert new records, and perform any other kind of processing. It becomes solely a read-only struct.
Your solution with foreach() is probably the best one. This will give you room to expand the functionality of the class later, instead of limiting you into the built-in functionality of a MySQL record object.