What's this patching of that gizmo worth to you? If you know nothing about 8051 it may be a long and difficult task. Disassembling the code will give you a listing of tens of pages where only the instructions are readable, at least for someone who knows 8051. Labels and variables are just hollow numbers, and of course it's not commented either. If the source was C instead of assembler it may even look more abstract.
The datasheet is not a great help re the programming. It mentions ISP (In System Programming) and IAP (In Application Programming), but the ISP procedure seems to include setting SFRs, so it looks like that's actually IAP as well.
ISP means that you have outside access to a microcontroller which is mounted on your product's PCB, to program it. Everything is controlled through external pins.
IAP also means programming the microcontroller inside your product, but here the microcontroller has to execute a software procedure to talk to the external programming equipment and program the Flash.
So the controller seems to need programming code to reprogram the device. It will probably use the UART for this, but the programming facility has to be programmed in the device in the first place, and most low-cost commercial devices are not made to be reprogrammed.
The datasheet doesn't say anything about programming the device on a programmer, but since it's 8051 compatible the programming may be compatible with that as well, and any legacy universal programmer may be able to program it.
You'll have to carefully remove it from the PCB, so that you can resolder it later.
Pault's AVR alternative may be a good idea. I've never used them to replace 8051's, so check the datasheet carefully, pin for pin. Pault mentions the ATMega162, and it seems the ATMega8515 is also 8051 pin-compatible. Note, however, that neither datasheets mentions anything about this.
You can drive a small bipolar stepper motor using an L293, SN754410, or L298
If you find a unipolar stepper motor (not uncommon in the paper advance on cheap printers) you can drive that relatively easily with discrete NPN transistor switches. In theory you can do a bipolar motor that way, but the circuit is a bit trickier (it's easy to get both the high and low transistors on and as a result short out the power supply, making them rather warm). Besides printers (copiers?) floppy drives are another salvage source, but hard drives switched to voice coils ages ago. Lots of surplus outfits will sell you motors; if you aren't looking for something powerful enough to run a machine tool you probably won't have to spend much.
Since you are very new to embedded programming as well, you might want to look at one of the "motor shield" type solutions - not necessarily to buy (though of course that is an option) but to study the plans and example software.
If working with a salvaged motor for which you don't have data, start with low voltage/current until you get movement. One thing that can be interesting to do is to take a <1 amp power supply and work out the series of voltage applications to the winding by hand connnecting them to slowly step the rotor. You can buy chips such as the L297 which generate this sequence to control the power driver chip, or you can do it yourself in software.
Actually making a motor may be fairly tricky, but people do make brushlesss motors which are stepper's lower-pole-count cousins. For early experiments ball bearings are likely not your greatest concern - plastic or oil-impregnated bronze sleeves might serve. But rollerblade wheel bearings are fairly cheap: mounting them is going to be a big part of the challenge (and a challenge which starts to stray from the topic of EE stackexchange)
Best Answer
Just to program a PIC, many devices can be used. The official Microchip Programmers section of their website lists quite a few devices, most aimed at the professional market. The PICKit3 can program and also do hardware debugging for many PIC IC's, which will save you countless hours of frustration. For more serious work, an ICD3 in-circuit debugger does all of the previous, is faster, supports more devices, and is considered a "production-level" programmer. For really serious work, a RealICE in-circuit emulator does all of the previous plus emulation of most PICs, allowing you ultimate freedom. Of course, that comes with a steep price tag.
As for non-Microchip offerings, there are many. My first programmer was a PICAll parallel-port kit. @Wouter Van Oijen next tempted me with his Wisp programmer, but time was limited and computer failures halted it. Then I used a usbpicprog from @Frans Schreuder for awhile after a new computer build excluded the parallel port. I finally was "forced" to get an ICD3 for fast debugging and that has remained the tool of choice.
There are likely many more, and simply googling "PIC Programmer" returned 1.9 million hits.
As others have said, one of these programmers are needed for programming a blank PIC. Many PICs can be initially programmed with bootloader code however, which makes them no longer require the initial programmer. Instead, once initially programmed with the bootloader, they are connected to either a serial or USB port, and software sends the .hex code to the PIC over that connection. The bootloader's job is to receive that data, and program it into the remaining code space.
There are many links to PIC bootloader info and tools at the Microchip Forum, including AN851 which discusses the nitty-gritty details of how the bootloader works and the serial method for communication.