Do you really need more than 50% mining power in order to attack Bitcoin blockchain? My question is about concept, so code is not related, however, do you really need 51% of the mining power in order to attack/replace the real bitcoin Blockchain?

For example, a blockchain has a length of 8, A, B, C, D, E each represent a individual with 20% of the total mining power, let's say person A and B decide to work together, but that's only 40% of the total mining power (less than 51%), for illustration purpose, miner C, D, E will always mine alone, so by the time miner C, D, E each finished mining the 9th block, A and B have already mined the 11th block (assuming they mine faster, since they work together and have a total mining power of 40%), so longest chain wins right? and now the 9th block that miner C, D, E just mined becomes invalid and their chain will be replaced to the longer blockchain, does this mean A and B might have the power to control and manipulate the entire bitcoin Blockchain with only 40% of the mining power as long as the rest of the network don't work together? if so, then bitcoin is not really safe, because most of the time there is no way for small individuals to work together, it's like owning a company, you don't have to be holding 51% shares in order to be in charge of the company, you can do it with just 2% as long as the rest of share holders each hold less than 2% and don't work together against you,

So my ultimate question is, does bitcoin network have a way to force the rest of the share holders to join forces? Therefore you need a true 51% to control/manipulate it or is it like a company?
A majority attack (51% attack) was given this name for a reason: in order for the attack to succeed on average, the attacker needs 51% of the hashpower.

Reading your question, I can see a misunderstanding of how mining works, in that you postulate two miners working together with 40% of the hashpower will outcompete 3 miners with 20% of the hashpower each (ie, 40% > 20%). This is false. 

Bitcoin mining is a memory-less process. This means that any single block header a miner creates has an equal chance of creating a valid hash - there is no advantage to having more hashpower, other than being able to make more guesses per second. A miner does not 'make progress' towards finding a new block, each hash is either valid, or not. 



An example using dice

As an example of a memory-less process, consider the act of rolling some dice. 

Lets consider a situation in which each di has 100 sides, and only 1 of those sides is considered a 'valid roll'. If there are 100 such dice in existence, and each of them is rolled once per second, then probability leads us to expect one valid roll per second. 

Now, lets consider your situation, in which 5 people each have 20 of the dice. We can see that, even if two people 'roll together', they will still only roll a 'valid roll' 40% of the time, whereas the other three people will roll a 'valid roll' 60% of the time, regardless of whether or not they are 'working together'.



Likewise, in your example we can see that the three miners with 60% of the hashpower will, on average, find more blocks than the two miners with 40% of the hashpower. This is simply because (20 + 20 + 20) > 40.

This may lead you to the question "then why would miners work together?" The answer is that by working together (using a 'mining pool'), a miner can expect less variance in their payout. See this answer for more info, and this answer is relevant as well.