Je dois (+ verb) = I must...
J'ai besoin de (+ verb or noun) = I need ...
Il me faut (+ verb or noun) is trickier to explain. It means "I need" just like the other one, but the need sort of spring from different places. "J'ai besoin" is me wanting something. "Il me faut" is I'm short of something for something I want. It's like the need is outside of me. Does that even makes sense?
If I say "J'ai besoin de temps" I need more time. I put myself out there saying I'm vulnerable, I lack time. But If I phrase it "Il me faut plus de temps", because I don't say "I", I don't appear so vulnerable. It would be like saying "This project need more time". It's not me personally, it's not my fault.