microSD card, how many times can I write the same sector?
how many times I can write the same sector entirely


You can't.

The memory controller will employ internal wear levelling and you have no way to force it to write to a specific physical sector. If you make sure the card is in fully erased state before deployment the memory controller will have plenty of room for wear levelling and will spread your writes over all of the card, so your 300 block writes will last a long time before the same physical sector actually gets overwritten just once.

In fact, if you limit yourself to a low number of (logical) blocks you ever write to, like those 300, ("over-provisioning") you make it even easier for the controller to do wear levelling: As soon as you overwrite a logical block the controller knows that the previous data in the corresponding physical block is no longer needed and can not only allocate a new physical block for your write but also mark the old physical block as unused and available for wear levelling. Thus you won't even have to issue ERASE commands yourself for blocks you no longer need. If you'd write data to all blocks on the card before starting over, the controller will not know that you actually don't need the data in 99% of the card's memory anymore and will have less room for wear management.


  I would like to know how can I store data to the SD card without a file system (writing the way I'm doing with the MCU), in a manner that I can write many many times on the card, for example, around a million times or more.


Easy: First make sure the card is ERASEd, e.g. by sending ERASE commands when setting up the card for the first time. Then restrict yourself to leaving some free, erased, space on the card at all times. This goes by the name of "over-provisioning", i.e. deploying a card which has more memory than will actively be used. 

Example: Say you have an 8GB card (16 million blocks), initially fully erased. If you only ever write to, say, the first 300 blocks in the address space (=150kB), you could re-write those 300 blocks 16000000/300 ~ 53000 times before every block of the physical memory is written to even once. So if you have only 500 writes per physical location that would still mean 500x53000=26.5 million writes to each of the 300 blocks you use. (That's of course assuming that a) writes are actually spread over all of the available space and b) that each memory location has the same level of wear levelling. Both assumptions may not be completely true because the memory controller may be more or less clever in spreading wear, e.g. by doing more to reduce wear on blocks which are expected to be written to more often on common filesystems, like the file allocation table.)