Can I use IDisposable by treating abstract concepts such as colors as resources?
Readability-wise, this is fine, though I prefer ConsoleForegroundBrush, because it keeps the theme of Drawing library, which is well known, and in the real world, you can definitely destroy/dispose brushes / put them down, but disposing an actual colour would be like... changing the color of the text back to black?

The main issue is there is a performance impact that comes with using, as this is really a try/finally block under the hood, and so you are adding try/finally around your code which may slow things down unnecessarily, particularly if there's other non-console logic in the using block. 

The using block can also sometimes hide other errors, because it's a try/finally block. If you put a using block inside a try() block and your dispose method of the ConsoleForegroundColour class throws an exception (such as if the Console became null somehow), you will probably only see the Dispose() exception, and not the other exception. This situation is highly unlikely to happen in your class though.