DarkStar wrote a JSFX utility for negative harmony:
https://forum.cockos.com/showthread.php?t=207332
With a little creativity, you can also do it directly in the MIDI editor.
After I have the MIDI notes I want to mirror, I place "dummy" notes outside them to define the pitch axis, and then use either:
Edit: Invert (reverse vertically) all note intervals
Edit: Invert (reverse vertically) selected note intervals
(depending on whether you want to invert everything, or just a selection)
For example, if I have a C major chord (C, E, G), and want to mirror it about the pitch axis between E-flat and E, I would place "dummy" notes at E-flat and E above/below the chord notes (it doesn't matter which "dummy" note goes above the chord or below the chord). Then I run one of the above actions to invert the intervals, and delete (or mute) the "dummy" notes afterward.
It's a little extra work, but if I'm composing with a planned purpose it's not much extra effort. If I were just messing around, and wanting to try several different pitch axes to see how each one sounded, then it would get a bit tedious. But I usually stick to the traditional pitch axis between the minor 3rd and major 3rd for negative harmony, so I just have to add the "dummy" notes once and be done with it.
While I like DarkStar's JSFX utility very much, I often prefer to do it manually, because I work with multi-channel MIDI quite a bit, and inverting the notes often means that I need to reassign the channels afterward, so that each instrument is playing in the correct range after the inversion.