let's assume wallet A contains ten btc addresses with each address contains 0.1 btc, for a total of 1 btc. wallet B contains 10 btc addresses but only one btc address contains 1 btc; others have zero balance. Now if i want to send 1 btc to another address, the fees for sending from wallet A will be much greater than fees required for sending from wallet B?
That depends on how those bitcoins were received.
If wallet B received 20 payments of 0.05 BTC all to that same address, then wallet B has 20 unspent outputs that it needs to spend. This means that the fees for spending from wallet B will be much greater than the fees required for sending from wallet A.
If wallet B received only 1 payment of 1.0 BTC to that address, then wallet B has only 1 unspent output that it needs to spend. This means that the fees for spending from wallet A will be much greater than the fees required for sending from wallet B.
The size (in bytes) of a bitcoin transaction is not effected by the number of addresses you are using, it is effected by the number of unspent outputs you have.
Also, I believe if we want to send different amount of btcs to 100 different addresses, if we do it in one transaction can save more network fees than doing them one by one.
Correct.
However, bitcoin core and electrum may handle this 'sendmany' function differently internally,
I don't think that they do.
resulting in different fees.
Each wallet is making its best effort to try and guess how busy the bitcoin network is at the moment and suggest a fee-per-byte that it thinks is reasonable right then. So, Bitcoin Core and Electrum might be suggesting slightly different fees. Sometimes Bitcoin Core might suggest a higher fee, and sometimes Electrum might suggest a higher fee. There is no single "cheapest fee" wallet.
I am in search of a wallet with its 'sendmany' function that will result in least fees

I'm not an expert with Electrum, but with Bitcoin Core you can manually set the fees to whatever amount you want. If you don't like the suggested fee, just set a lower one. However, if you set them too low, the miners and peer nodes might ignore your transaction and refuse to confirm it if you don't set a high enough fee.