You can influence servers weight and other settings externally, so yes, if you are willing to build a solution around that you can probably achieve what you want.

But haproxy is not gonna check the CPU load on your backend servers for you. You have to do it yourself. Also, if this is setup to drastic, you may be causing oscillations instead of a balanced situation. That is an important question to think about when trying to achieve load-based balancing.