I found out the culprit!!
I made a second batch last week with only aroma hop. Racked it to secondary last night, I took a glass and tasted it. Holly cr*p, it was the same bitterness level as the first batch. It's not the "soft" bitter of hop, it is a "sharp" bitter.
I took all my brewing equipment and place them on a table, I took my notes out and following the process as if I am brewing a new batch (you can guess how mad was I). Only hop or grain should gives bitter taste. Hop was fuggle whole leaf and added only at last minute. Grain soaked in 155F for 20 minutes, and my eyes were on the thermometer all the time making sure it didn't pass the 155 mark. I got the thermometer out and re-checked the scale

, but wait, how come it showed 120F while it was 65F outside? Couple more tests and found out that it was a defected one. Put it in boiling water and it showed 160F, in freezer and it showed 100F

How could it be? I think it was defected on a purpose of causing some damages. A closer looked at it and seemed like the inner tube got leak causing the wrong reading.
So on both batches, the grains got soaked in a too hot water, I am not sure what but I guess about ~200F! Well now, I'll go with david_42's advise, adding Gelatine to reduce the bitterness. I won't have enough keg to age the beer for long though. Hard lesson for me.
P.S. Anyone knows any good quality thermometer in $200 range?