+=の代わりに<<を使うだけで結構速くなりますよ。
>fooさん 情報ありがとうございます。本当ですね、String#<<使うとStringIO#writeと同程度の速度でますね。10万回の繰り返しで1.5秒程度でした。