Is it possible to upload arduino bootloader to atmega128?
Not unchanged but with some adaption this should be no problem.
Which version of arduino should I use ?
The latest stable, which is 1.0.5
I have UsbAsp, can I use it ? How ? I can only upload *.hex file directly from USBasp uploader, but not yet successful on uploading via arduino 1.5 IDE
You have to modify boards.txt and add an entry for your ATmega128 board there.
how can I customize the pin out, as I like ?
What do you mean by that? Changing the translation from the Arduino pin numbering to the actual ports?
I saw pin_arduino.h but I 'm not sure on how to configure it ??
You don't have to change it but to make a new variant, so create a new directory for your variant and copy pin_arduino.h there and modify that copy. You have to modify it according to the pinout you've chosen.