If a high percentage of the time is spent executing your code then refactoring or rewriting it can make sense.
It really depends on exactly what your code is doing.
My guess is that you are trying to do some type of rubber banding where you give the user immediate feedback.
The way that you are doing this appears to be by actually modifying the underlying objects which seems inefficient. My guess is that rewriting this in C++ is not going to help you.
I'm not sure how to do this efficiently in ArcMap. I did search the forums and found the following post:
http://forums.arcgis.com/threads/82755-Save-a-Geometry-(draw-using-Rubberband)-as-a-feature-in-Featu...