Do I need a resistor between the microcontroller and the battery?
If you knew exactly what current the microcontroller draws, that would work.
$$R=\frac{9-5}{I_0}$$
But you can't. The current you state is a typical value, and it should actually be highly dependent on the frequency of the clock and the peripherals used. Even then, it will vary with noise and all sorts of other causes. After you fit R, you'll find that for a current:
$$I=I_0\pm \Delta I$$
The voltage across the microcontroller's supply will be:
$$V_{cc}=9-RI=9-R(I_0 \pm \Delta I)=5\mp R\Delta I$$
In your case, you'd like to fit a 4k resistor, and if the current is different from what you expected by as little as 0.125mA, either you'll fry the micro or it will fail to function properly. 

Is there a way to adjust the resistance in function of the current drawn from the supply? Yes, and those are called linear regulators. They still waste a lot of power dropping the voltage, unlike switching regulators, but they're very compact, cheap, and accurate. There is a transistor inside which resistance is controlled by an opamp that compares a reference voltage with the output voltage. It's kind of the "dam" of electricity.

Short answer: use a regulator. It's nearly as simple, and much more efficient and safe.

P.S: As others have mentioned, I've used 5V instead of 5.5V because I'm pretty sure 5.5V is the absolute maximum of your microcontroller, not the nominal supply voltage. Your gyroscope certainly requires 3.3V, which you can obtain from a second (low drop) linear regulator wired to the 5V.