Tftp is used to get OS image from pxe server to client as it uses UDP for file transfer. But can we use ftp for the same. If yes then how and if no then why?
In theory, yes you can... you'll just need to design a PXE standard extension for FTP, then write a new netboot firmware to implement that extension, then flash it to your NICs.
In practice, it's probably not worth of the effort unless you have a very hard requirement for FTP specifically.
But before you start that development project, note that iPXE can use HTTP. You can either use TFTP-based PXE to load iPXE as your first-stage network bootloader, and then have it switch to HTTP for speed, or - if your NIC is supported by the iPXE project - get iPXE in a flashable format and flash it into your NIC, and then use HTTP for all netboot-related file transfers.