since both NLP/FLP and preamble are using predefined pulses, can we use autonegotiation as a way of sync clock, so we don't need preamble anymore?
That can't work.
Autonegotiation FLPs do not provide enough transitions to synchronize a bit stream. The pulse width is just 100 ns equiv. to 10 MHz, insufficient to synchronize the physical layer clocks for 100BASE-TX or 1000BASE-T (or even xGBASE-T). Clock pulses are spaced apart 125±14 µs, too long and too vague for syncing anything.
Additionally, a preamble in front of each frame resynchronizes the bit clock at regular intervals, unlike FLPs which are only used for bringing a link up. (10BASE-T NLPs are only transmitted when there's no data carrier.)