Perhaps the only way to 'center' the colourbar and title is for the colourbar to be larger than the legend title, e.g.
library(tidyverse)
heat <- data.frame(Samples = rep(c(paste("Control", 1:10, sep = "_"),
paste("Treat", 1:10, sep = "_")), each = 2),
Gene = c("Occludin", "Claudin"),
Folded_Change_of_Expression = runif(20, -4, 4))
ggplot(heat, aes(x = Samples, y = Gene, fill = log(abs(Folded_Change_of_Expression)))) +
geom_tile() +
coord_fixed(ratio = 4) +
theme(axis.text.x = element_text(angle = 90),
axis.text.y = element_text(size = 12),
panel.background = element_blank(),
axis.title = element_text(size = 16),
legend.direction = "vertical",
legend.box = "vertical",
legend.title = element_text(angle = 90,
hjust = 0.5,
vjust = 0.5),
legend.justification = c(0.5, 0.5)) +
guides(fill = guide_colourbar(title = "log(Fold Change in Gene Expression)",
title.position = "right",
title.hjust = 0.5,
title.vjust = 0.5,
legend.title.align = 0.5,
barheight = 14))

When the legend title is longer than the colourbar it appears to 'fall back' on a default justification. I've had a look at the source code for guide_colourbar (https://rdrr.io/github/SahaRahul/ggplot2/src/R/guide-colorbar.r) but it's not clear to me why this is the case. If you make the legend title smaller, it is positioned as expected:
library(tidyverse)
heat <- data.frame(Samples = rep(c(paste("Control", 1:10, sep = "_"),
paste("Treat", 1:10, sep = "_")), each = 2),
Gene = c("Occludin", "Claudin"),
Folded_Change_of_Expression = runif(20, -4, 4))
ggplot(heat, aes(x = Samples, y = Gene, fill = log(abs(Folded_Change_of_Expression)))) +
geom_tile() +
coord_fixed(ratio = 4) +
theme(axis.text.x = element_text(angle = 90),
axis.text.y = element_text(size = 12),
panel.background = element_blank(),
axis.title = element_text(size = 16),
legend.direction = "vertical",
legend.box = "vertical",
legend.title = element_text(angle = 90,
hjust = 0,
vjust = 0,
size = 8),
legend.justification = c(0, 0.5)) +
guides(fill = guide_colourbar(title = "log(Fold Change in Gene Expression)",
title.position = "right",
title.vjust = 0.5,
barheight = 10))

Created on 2022-06-30 by the reprex package (v2.0.1)