So it's like I mentioned in (2.), I actually have to download the other hashes (marked with *). But I cannot verify them, I have to trust they are correct hashed from the underlying transactions? Or is it impossible to generate a false hash, as it would never result in the correct Merkle tree root??
You can verify them and you are right in the second part. The way hashes work is it is "easy" in terms of computational power to verify a hash but computationally infeasible to produce a "fake hash". The odds that an attacker could find a hash which when hashes will produce the correct value "up tree" on the merkle tree is highly improbable. The hash space is 2^256. With current global computing power it is simply not economical for an attacker to attempt "fake a hash".
To have a 1 in 1 trillion chance of finding a single hash collision in SHA-256 would require all the computers in the world working 24/7/365 for next 40 quadrilion years. So it is impossible in cryptography to say "impossible" but we can say it is highly improable and infeasible unless the hash is cryptgraphically flawed (broken).
I'm thinking of this "trust nobody" principle, but here I would download these intermediate hashes from somebody else I don't trust.
"Trust in numbers". You don't have to trust the person sending you the data.
Hell you (and the client) should assume there is a chance he is an attacker. You trust that it is computationally infeasible for an attacker to substitute a transaction or hash that would "fit" the merkle tree. The client is designed to find remote peers and get data from various locations. This is done to prvent an attacker from controling the flow of information (hiding transactions). If sufficiently paranoid you could even write a client which won't act upon data until it receive it from multiple remote peers.