I have the following type of plot and want to keep each strip text above the individual facet box as a \"title\" of sorts yet not have the default grey background and black
If you set element_blank() for strip.background and keep element_rect(colour="black", fill = NA) for panel.border then top edge of panel.border will be black.
As pointed out by @adrien, for panel.background fill should be set to NA to avoid covering of points (already set as default for theme_bw()).
ggplot(mtcars, aes(mpg, hp)) + geom_point() +
facet_wrap(~carb, ncol = 3) + theme_bw() +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
strip.background = element_blank(),
panel.border = element_rect(colour = "black", fill = NA))

Setting panel.border might cover your graph unless you also add fill=NA to panel.border :
theme(panel.border = element_rect(fill = NA, colour = "black"))
One can also use:
theme(panel.background = element_rect(fill = NA, color = "black")
source (section "Panel Attributes")
You can try:
strip.background = element_rect(colour=NA, fill=NA),
panel.border = element_rect(fill = NA, color = "black"))