UPDATE `board`
SET `position`=`position`+1
WHERE `position`>='$myPosition' AND `id`<>'$myID'
Хотя я не вижу смысла делать отдельно поле для позиции. Этим самым Вы только мороки себе добавляете, так как нужно синхронизировать 2 поля, которые по сути означают одно и то же - место игрока в рейтинге. Достаточно `id` и `scores`. При выборке делаете ORDER BY `scores` ASC/DESC и уже в PHP проставляете порядковые номера по ходу разбора результатов запроса. Если нужна позиция по конкретному `id`, то:
SELECT COUNT(`b`.`id`) AS `position`
FROM `board` AS `b` JOIN `board` AS `my`
ON(`b`.`scores`>`my`.`scores` OR (`b`.`scores`=`my`.`scores` AND `b`.`id`<`my`.`id`))
WHERE `my`.`id`='$myID'
...если одним запросом, но лучше 2мя: сначала выбрать кол-во очков для конкретного `id`, потом посчитать позицию исходя из `id` и очков.
Лучше увеличить сложность выборки, чем обновлять пол-таблицы каждый раз.