Using C++ isn't going to improve your model's speed. As you already pointed out, your model is running slow due to the large number of items and events in your model. Running your model for just 75 seconds (simulation time) and you have 21629 flowitems and have executed 1,048,576 events.
I'm running your model in FlexSim 2017, where the FlexSim compiler has been updated to compile FlexScript into machine code (this makes FlexScript just as fast as C++) and it's still really slow. The only reason to use C++ would be if you wanted to utilize external C++ libraries that are not available in FlexSim.
In order to improve the speed of your model you need to rework the way you're model runs. I can't speak for this model as I'm not sure what it's supposed to be doing, but let me give you a warehousing example.
Let's say I want to simulate a warehouse where I have pickers that fulfill customer orders. Let's say the facility has 50,000 different SKUs (products) and each of those SKUs has an in stock quantity ranging from 10 - 100. This would require around 2,754,222 flowitems in my model to to represent each item. Instead of creating all of these flowitems at the beginning of my model, I create them on demand as I fulfill my order. If an order has 10 items in, I start with the first item, create a flowitem at the right place in the model and have my operator walk to it. Once picked, I move to the next item, create another flowitem and then move to it, etc. Using this method, my model now only has a few flowitems on racks at a time, and the total number of flowitems is equal to the number of orders currently being worked on (whether in picking or packing).
Perhaps there is a way to limit the number of items you have moving through your model. Or perhaps you can batch items such that each flowitem represents multiple items.