No, they would not move together because they have different pointers. The ME pointer is an internal engine pointer.
Me just pointers to the current entity the action is assigned to. So if you assign a different pointer to it, eg. player_1, then that entity then has pointer player_1 and not me.
You then can manipulate the entity by referencing player_1.
If you do not want to create an action for each entity then create a different pointer for each entity you want. Then use ent_create to load the model and assign it the pointer like so.
Entity* player_1;
Entity* player_2;
Action move_players
{
player_1 = ent_create("model1.mdl", vector(10,0,0), some_function);
player_2 = ent_create("model2.mdl", vector(20,0,0), some_function);
}
Then you can move each entity by referencing their pointers...
player_1.x = 0;
Finally you will want to switch controls to different entities. Use one big function for that (some_function) and control keys with different pointers.
Hope you get that, pointers aren't the easiest concept in the world, lol.