Controlling a brushless DC motor with an Arduino--*without ESC*
Atmel have a few application notes about brushless motor control without sensors, e.g. http://www.atmel.com/Images/doc8192.pdf or http://www.atmel.com/images/doc8306.pdf

2/ You need to sense the rotor position somehow. The magnetic field in the motor coils needs to rotate slightly in advance of the magnetic field in the rotor in order to pull it around, so you need to know where the rotor is to switch the next set of coils on at the right time. If the motor does not have hall effect sensors then you do this by sensing the emf in the coils. This only works once the motor is rotating, so there is a slower fixed sequence to start the motor.

1/ The kv number is the rpm per volt at no load, so at 14.4V the motor might be expected to be going at 10,000 rpm which is 167Hz. 10MHz would be very fast for a motor - the tips of a 10cm propeller would be at 2% of the speed of light.

3/ As the app notes will tell you, the wave form of the field required for these motors is 'trapezoidal' which is essentially a square wave.