No, right now you can't pay for transactions using ERC20 tokens.
There's the ERC 865 proposal to have this functionality, but it is not yet implemented.
If you are the one implementing the ERC20 token, the best you can do would be to add a custom function which can be called only by the owner of the smart contract, or by an admin, which would be able to transfer tokens from arbitrary addresses.
This owner/admin account would need to have ETH available to make the transactions though. Also, the people using the token would need to trust that the owner/admin won't transfer the tokens from their accounts.