When using ggplot, I can set shape to 21-25 to get shapes that have independent setting for the internal (fill) and border (col) color
shape
fill
col
Another solution is to create the plot in R and then export it to a .svg file. The linewidth can then be changed using vector graphics editing software (e.g., Inkscape). This method is particularly useful when data points overlap.