Вы можете указать разные -fx-background-insets
для сторон.Если один цвет должен появляться только на одной стороне, вставки следующего цвета соответствуют вставкам для цвета метки, за исключением стороны, которая должна быть окрашена.
Кроме того, я рекомендую использовать PseudoClass
вместо класса стиля, так как таким образом вам не нужно обязательно добавлять класс несколько раз.
final PseudoClass mark = PseudoClass.getPseudoClass("mark");
...
boolean marked = ...
row.pseudoClassStateChanged(mark, marked);
Следующий CSS немного упрощен, но он должен продемонстрировать подход:
.table-row-cell:mark {
-fx-background-color: -fx-table-cell-border-color, red, -fx-background;
/* show red highlight of size 2 at the top */
-fx-background-insets: 0, 0 0 1 0, 2 0 1 0;
}