I'm seeing <5MHz clock rates listed for that micro, so I would be very tempted to get a modern micro with a high enough pin count and 32K bytes of spare internal flash, and emulate it in software. With a 3-wire serial port hanging off the end of course!
Major challenge I see would be 5v - 3.3v conversion. You could probably do it with series resistors, assuming that the output of the 3.3v micro is enough for a reliable read by the old micro (which it usually is, if you aren't in a high-noise environment)
If the clock is low and you don't need the full capacity, you might be able to use an ATMEGA328 running at 5V.
I guess another challenge would be insuring that the add-in comes out of reset first, though you could fix that with a jumper wire to hold the main processor in reset until the new device comes out of power-on-reset.
Of course another option if the processor is socketed is to emulate the processor rather than the EPROM.
Programming one PIC by another PIC is perfectly possible, and when you use LVP the circuit is trivial. The effort is in writing the code on the master PIC that implements the programming algorithm, according to the specs in the 'programming specification' document for the slaved chip. This is what most programmers (the hardware thingies, not the people) do, but note that in most cases the programming algorithm is at least partially implemented in the PC side software.
There are various examples that you can check, the pickit2 has already been mentioned. My Wisp648 firmware (in Jal) and PC side software (in Python) are also open source, and IIRC the software for Olin's programmers is too.
But the programming specifications are not that hard to read an implement from scratch, especially if you need to support only one target chip. Essentially you force the chip into programming mode (release reset while LVP is active), and then you feed it commands and associated data (in a SPI-like fashion), observing the required timing. Afterwards you can use an off-the-shelve programmer to check whether your programming effort was successful.
Another solution would to to put a bootloader in the F88. The down side is that you need to program the bootloader (but a suitable one might exit already) and that the bootloader takes some memory, but the up side is that you can choose the communication protocol (or stick to an existing bootloader, which will often use a UART-based protocol).
Best Answer
Usually those kits include a monitor program and some kind of battery-backed RAM.
You are going to have to find an instruction manual and read it however, since you will need access to instructions and such like. If you read the manual, then you probably won't need to ask the question, so I guess RTFM (Read The Fine Manual) is the only possible answer.
Here is a typical such board, and the blurb states:
8K bytes of Powerful Monitor Program using 27512 EPROM
8K bytes of RAM using 6264 with Battery Backup using NICD Battery
So if that was the one you had, and you had the manual, you should be able to use the monitor program to load a user program into battery-backed RAM and execute it. The monitor may do some trickery like modifying your code to insert breakpoints for debugging, so do read the manual.