In a smart contract, you could do this by emplacing multiple actions into a single transaction, as follows:

    transaction transfer;
    transfer.actions.emplace_back(eosio::permission_level {_self, N(active) }, N(eosio.token), N(transfer), std::make_tuple(from_account, to_account_1, quantity_to_send, std::string("memo")));
    transfer.actions.emplace_back(eosio::permission_level {_self, N(active) }, N(eosio.token), N(transfer), std::make_tuple(from_account, to_account_2, quantity_to_send, std::string("memo")));
    transfer.actions.emplace_back(eosio::permission_level {_self, N(active) }, N(eosio.token), N(transfer), std::make_tuple(from_account, to_account_3, quantity_to_send, std::string("memo")));
    transfer.send(0, _self, false);

You can do it with `cleos` by creating the json for each transfer, as follows:

    cleos transfer from_account, to_account quantity memo -d -j -s 

This creates json output do this for all the transfers you want to do it for, it should look like this:

    {
      "expiration": "2018-10-20T10:54:37",
        "ref_block_num": 92,
        "ref_block_prefix": 276911189,
        "max_net_usage_words": 0,
        "max_cpu_usage_ms": 0,
        "delay_sec": 0,
        "context_free_actions": [],
        "actions": [{
          "account": "eosio.token",
          "name": "transfer",
          "authorization": [{
            "actor": "fromaccount",
            "permission": "active"
          }
          ],
          "data": "00f2d4142123e95d0040c85353840ccd102700000000000004454f5300000000046d656d6f"
        }
        ],
        "transaction_extensions": [],
        "signatures": [],
        "context_free_data": []
    }

    {
      "expiration": "2018-10-20T10:54:42",
        "ref_block_num": 102,
        "ref_block_prefix": 3271438144,
        "max_net_usage_words": 0,
        "max_cpu_usage_ms": 0,
        "delay_sec": 0,
        "context_free_actions": [],
        "actions": [{
          "account": "eosio.token",
          "name": "transfer",
          "authorization": [{
            "actor": "fromaccount",
            "permission": "active"
          }
          ],
          "data": "00f2d4142123e95d0080c85353840ccd102700000000000004454f5300000000046d656d6f"
        }
        ],
        "transaction_extensions": [],
        "signatures": [],
        "context_free_data": []
    }

    {
      "expiration": "2018-10-20T10:54:45",
        "ref_block_num": 109,
        "ref_block_prefix": 718898287,
        "max_net_usage_words": 0,
        "max_cpu_usage_ms": 0,
        "delay_sec": 0,
        "context_free_actions": [],
        "actions": [{
          "account": "eosio.token",
          "name": "transfer",
          "authorization": [{
            "actor": "fromaccount",
            "permission": "active"
          }
          ],
          "data": "00f2d4142123e95d00c0c85353840ccd102700000000000004454f5300000000046d656d6f"
        }
        ],
        "transaction_extensions": [],
        "signatures": [],
        "context_free_data": []
    }

To make this into one transaction, copy and paste each of the actions into the first json output, as follows:

    {
      "expiration": "2018-10-20T10:54:37",
        "ref_block_num": 92,
        "ref_block_prefix": 276911189,
        "max_net_usage_words": 0,
        "max_cpu_usage_ms": 0,
        "delay_sec": 0,
        "context_free_actions": [],
        "actions": [{
          "account": "eosio.token",
          "name": "transfer",
          "authorization": [{
            "actor": "fromaccount",
            "permission": "active"
          }
          ],
          "data": "00f2d4142123e95d0040c85353840ccd102700000000000004454f5300000000046d656d6f"
        },{
          "account": "eosio.token",
          "name": "transfer",
          "authorization": [{
            "actor": "fromaccount",
            "permission": "active"
          }
          ],
          "data": "00f2d4142123e95d0080c85353840ccd102700000000000004454f5300000000046d656d6f"
        },{
          "account": "eosio.token",
          "name": "transfer",
          "authorization": [{
            "actor": "fromaccount",
            "permission": "active"
          }
          ],
          "data": "00f2d4142123e95d00c0c85353840ccd102700000000000004454f5300000000046d656d6f"
        }
        ],
        "transaction_extensions": [],
        "signatures": [],
        "context_free_data": []
    }

Finally, save this json file, and execute it as follows:

    cleos push transaction my_json_file.json