You could write a smart contract for it. You would give a list of addresses to it and it'd distribute the given eth to those addresses. Of course this means you'd also have to pay for the execution of the contract.
Something like this:
function distribute(address[100] addresses) payable public {
uint oneShare = msg.value / addresses.length;
for (uint i = 0; i < addresses.length; i++) {
addresses[i].transfer(oneShare);
}
}
Please note that this code is not very good (for example the array size is now static and problems with decimal amounts), but you'll get the point.
It's also bad practice to transfer money from a contract - it would be better and safer to allow withdrawal for the address.