But when working just on some units (without a main program), which type of project do you choose in Lazarus?
Any of them, or the more convenient one for the kind of unit you're working on (if it's for GUI program, "Application", otherwise "Simple program" or "Console program" or such).
What it really amounts to is that you can have, say, a "test" program using the unit and, when you're done, you can take the unit by itself and do whatever you want with it, so your project should be the most adequate for that task: testing the unit(s).
For example, I have a unit that extends TMemo and TStringList in various ways, so to work with it what I've is a "simple" text editor where I can test the units, check border cases and try out new ideas. It's as easy (or as difficult) as that.