You could simply create a separate timer for each player, and then store the ID in a HashMap
:
public Map<String, Integer> taskID = new HashMap<String, Integer>();
//call this to schedule the task
public void scheduleRepeatingTask(final Player p, long ticks){
final int tid = plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable(){
public void run(){
//do you want here
}
},ticks, ticks); //schedule task with the ticks specified in the arguments
taskID.put(p.getName(), tid); //put the player in a hashmap
}
//call this to end the task
public void endTask(Player p){
if(taskID.containsKey(p.getName()){
int tid = taskID.get(p.getName()); //get the ID from the hashmap
plugin.getServer().getScheduler().cancelTask(tid); //cancel the task
taskID.remove(p.getName()); //remove the player from the hashmap
}
}