When I read any documents regarding NAND and NOR flashes. They say that NAND is sequential memory whereas NOR is random. I dont understand what stops NAND memory from being random too as the only difference in these two memories are being serial and parallel.
NAND flash does not store data error free. It has a (comparatively) high bit error rate. For this reason, pages of data in NAND are stored with redundant data that allows for error checking and correction. This means that when you read a byte from NAND flash, it may have an error. In order to check it or correct it, you need to read the whole page of data to get the redundant data. This makes it fundamentally a page-oriented storage medium.
The trend over the last 10 years or so has been for the page size and density of NAND to go up, but the required error correction has also become more complex, and the probability of single-bit errors has also gone up.
The effective time of a read page operation depends on how long it takes to read, check and correct the data. In cases where an error has to be corrected, the effective read time is much longer than the no-error case. This is usually an undesirable characteristic of RAM. The error correction process is computationally intensive, and hardware acceleration is basically required for it to work without hurting system performance.
When it comes to writing data in NAND flash, there are some additional problems. In order to write data, you must first erase. NAND flash does not allow random writing. Erases take a relatively long time, and have to be done on an entire block of pages. So to write one byte, you first need to read a block into volatile memory, then erase it, then write the modified data back (including the newly computed redundant data for the page you modified).
Now we have to talk about endurance. NAND flash can only be erased so many times before it becomes bad. So, sometimes, you go to modify one byte, then find that the block is bad. You have to mark the block as bad, then relocate the whole block somewhere else, just to write one byte. And that means you have to keep track of where blocks have been relocated or remapped to.
I hope you are starting to see some of the difficulties associated with using NAND flash as a RAM.
If you want to research more about this, here are some search terms: NAND flash endurance, NAND flash ECC, NAND flash bad block management.