Yes, it is doable--hypothetically.
Can a miner choose not to generate new bitcoins but dedicate all their power to transactions for this purpose?
In order to allow transactions with zero fees, you need to actually mine coins.
For each block you mine, you get to choose which transactions you want to include. You'll get slightly less profit as you won't actually get fees, as you won't be charging any.
That being said, you'll need to generate a good percentage of blocks in the chain (that is, have a good portion of the world's hashing power) to actually make a dent in the number of fee-less transactions people want to send.