その方法は、それほど難しくありませんが、AddItemを使わないで行う必要があるので、アプローチが変わります。
既にプログラムを作りこんでいる場合は、若干面倒な修正になるかもしれません(作り方にもよりますが)。
今回は50万文字まで試しました(※もっとも試し方によってはNGになる可能性もあるのでご了承願います)。
リストボックスには「List」プロパティがあります。このプロパティはとても便利で2次元の配列をそのままセットできます。
この仕組みを利用するとより多くの文字数を入力することが可能になります。
ちなみに要素数は上記のような形でプログラムすることはテスト以外ないと思われ、実際には「要素数をどうするか」、という問題も出てくると思います。
そのため通常だとRedimを使う必要があり、Redim時に要素数をあらかじめ把握しておくような仕掛けを用意する等が発生すると思います。
余談ですが、AddItemよりもListプロパティの方法でリストボックスに値をセットする方がリストボックス的なコード(AddItem)に依存する必要がないので扱いやすいです。
Listプロパティの方がシートの値をそのまま取り込めたりするため、プログラム上のデータも配列にして持たせることで、変数をそのまま受け渡ししやすいことがメリットだと思います。
リストボックスやコンボボックスで「処理が遅い」と感じてる方はVariant→Listプロパティも試してみてください。
ちなみにリスト的な意味では、コレクションなども扱いやすいですがアイテム数(Add)が劇的に増える(またコレクション内ループも)とパフォーマンスに影響を与えることがあるのと、リストボックスに表示するためにループを使ってもう一度AddItemを使うことの2度手間が発生するのでパフォーマンスを意識するならVariantでデータを扱う方がメリットがありますね(ただVariantもメモリ使いますが)。